Когда я делаю следующее,
class TestObject {
private $testField = "12345";
}
echo json_encode((new TestObject()));
echo serialize((new TestObject()));
Я получаю {}
для json_encode (), но O:10:"TestObject":1:{s:21:"TestObjecttestField";s:5:"12345";}
для serialize ().
Я бы хотел лучше понять, как они оба работают под капотом. Как serialize () может получить доступ к закрытым атрибутам. Также, почему json_encode () не может сделать то же самое.