@bedolazhka

Почему не заполнено свойство для модели дочернего класса?

abstract class BaseModel
{
    public $a;
}

class ModelA extends BaseModel
{
    public function __construct()
    {
        $this->a = 'Тест';
    }
}

class ModelB extends BaseModel
{
    public function __construct()
    {
		var_dump($this->a); // null
    }
}

abstract class ControllerA
{
    private $mObj;

    public function __construct()
    {
        $this->mObj = new ModelA();
    }
}

class ControllerB extends ControllerA
{
    public function __construct()
    {
        $mObj = new ModelB();
        var_dump($mObj->a); // null
    }
}
new ControllerB; // null


То есть:
- вызываем ControllerB одновременно с родителем ControllerA
- в ControllerA вызываем ModelA, которая заполняет свойство a для своего родителя - BaseModel
- в ControllerB вызываем ModelB, которая получает свойство a от своего родителя - BaseModel
NULL
Что я не вижу?
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
DevMan
@DevMan
на вскидку:
class ModelB extends ModelA
{
    public function __construct() {
    parent::__construct();
    var_dump($this->a);
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы