2014-03-21 4 views
0

Я пытаюсь получить доступ к объекту в классе, расширенном из другого класса. Но я получаю сообщение об ошибке «Попытка получить свойство не-объекта».Попытка доступа к объекту в классе, расширенном из другого класса

Это код: http://3v4l.org/ZLTWf#v500

почему я не могу получить доступ к $doo->var_2->var? Я отлично работаю с $foo->var_2->var (как и должно быть), но почему я получаю сообщение об ошибке при расширении класса? Разрешено ли в PHP? Есть ли дополнительный код, который позволит мне это сделать?

Я даже получаю ошибку «Undefined переменной» на $doo->$var_3

ответ

3

Проблема здесь

class TheClass extends SecondClass{ 
    public $var_3; 
    function __construct(){ 
     $this->var_3 = "Some Text..."; 
    } 
} 

Вы перезаписаны родительский конструктор так, когда экземпляр класса конструктор своего родителя не будет называться с момента его перезаписывания.

Вы можете это исправить, как

class TheClass extends SecondClass{ 
    public $var_3; 
    function __construct(){ 
     parent::__construct(); 
     $this->var_3 = "Some Text..."; 
    } 
} 
+0

ли не работает. – Ameer

+0

Нет, я получаю результат как texttext –

+0

Для меня это решение отлично работает. Вы удаляете инициализацию MainClass(). Таким образом, var_2 был NULL – Debflav

Смежные вопросы