Как получить доступ к свойству класса родителя, если текущий экземпляр был создан в родительском

Я экспериментирую с MVC, пытаясь создать простую структуру. Это пример того, что я делаю:

<?php
require_once('config.php'); //Here I have the Config object
class App{
    protected $config;
    protected $controller;
    public function init(){
        $this->config = new Config;
        $this->controller = new Main_Controller;
    }
}
class Main_Controller extends App{
    public function __construct(){
        var_dump($this->config);
    }
}
$app = new App;
$app->init();

Проблема в том, что мой var_dump возвращает NULL, так почему же Main_Controller не читает это свойство приложения?

1 ответ

Родительские конструкторы не вызываются неявно, если дочерний класс определяет конструктор. Чтобы запустить родительский конструктор, требуется вызов parent::__construct() внутри дочернего конструктора. Если дочерний элемент не определяет конструктор, он может быть унаследован от родительского класса, как обычный метод класса (если он не был объявлен как закрытый).

Другие вопросы по тегам