Задать вопрос
@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
Что я не вижу?
  • Вопрос задан
  • 89 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
DevMan
@DevMan
на вскидку:
class ModelB extends ModelA
{
    public function __construct() {
    parent::__construct();
    var_dump($this->a);
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽