Здравствуйте, уважаемые кодеры ! Помогите пожалуйста начинающему оболтусу не погибнуть в борьбе с классами и наследованием. Имеем: Код (PHP): class A { public $total; public function __construct() { $this->total = 100; } } class B extends A { public $content; public function __construct() { $this->content = 'Я - текст.'; } } Вопросы: 1. Если в коде создать экземпляр класса B, $b = new B(); должен ли автоматически создаться его родитель - класс A ? (У меня не создаётся.) И можно ли к нему обращаться после этого таким образом echo $b->total; Получая в выдаче 100. (У меня не получается.) 2. Если я в коде создал оба класса $a = new A(); $b = new B(); то почему у меня $b->total имеет пустое значение, а $a->total равно 100 ? Я полагал, что $b->total тоже должно быть равно ста. Наследование не работает. В чём мои ошибки ?
дык у тебя значение присваивается в конструкторе А, а ты его в конструкторе Б не присваиваешь же ж. Ты ж заменил конструктор А на конструктор Б. Два их не будет одновременно.
Как же мне именовать конструктор класса B, чтобы он отличался от конструктора родителя и в то же время интерпретировался как конструктор ?
$this->$content исправь на $this->content 1. нет. но в некотором смысле B это A. сталобыть да. 2. здесь не класса, а объекта, т.е. "экземпляра класса". потому что в классе-наследнике вызов родительского конструктора НЕ делается автоматом, если ты перекрыл его в наследнике. можешь сделать явно: Код (PHP): public function __construct() { parent::__construct(); // и что-то там еще траляляля... }