У меня есть родительский и дочерний классы следующим образом:
abstract class ParentObj {
private $data;
public function __construct(){
$this->data = array(1,2,3);
var_dump($this->data);
$this->method();
}
public function method(){
echo "ParentObj::method()";
}
}
class ChildObj extends ParentObj {
public function __construct(){
parent::__construct();
var_dump($this->data);
}
public function method(){
echo "ChildObj::method()";
}
}
Ожидаемый результат:
array(1,2,3)
ChildObj::method()
array(1,2,3)
Фактический объем производства:
array(1,2,3)
ParentObj::method()
NULL
Проблема в том, что дочерний объект не может получить доступ к свойству данных, а родительский объект отказывается вызывать переопределенный метод в дочернем объекте.
Я что-то не так делаю, или у кого-нибудь есть идеи?
РЕДАКТИРОВАНИЕ: Я должен уточнить, что я создаю экземпляр ChildObj как $child = new ChildObj()