Код |
---|
Class B { private $a = "B" ; function __construct() { $this->a = "C"; } } Class A extends B { public $a = "A" ; } $c = new A; print_r( $c ); echo serialize( $c ) ; |
вывод
Код |
---|
A Object ( [a] => A [a:private] => C ) O:1:"A":2:{s:1:"a";s:1:"A";s:4:"Ba";s:1:"C";} |
то что публичный член класса A не переопределил приватный член класса B - понятно так и должно быть, но как и самое главное ЗАЧЕМ приватный член базового класса попал в наследующий класс ??
причем речь идет не об ошибке распарсивания , приватный член базового класса изменяется динамически.
Я бы понял (и простил ) это для print_r , хотя тоже странно - это же нарушение инкапсуляции, я даже знать ничего не должен о приватных членах базового класса, но зачем мне это счастье в serialize ?? если я хочу сохранить объект в файлик например