Вопрос о наследовании PHP, бесит меня - PullRequest
0 голосов
/ 18 сентября 2011

У меня вопрос, который меня бесит. Родительские конструкторы конструируют себя без вызова?

Причина Я вижу, что это работает в ситуации, а не в сценарии, который я пишу.

Я получил следующее:

boot.php

$this->router = new router($param);

router.php

class router extends routerController
  • на маршрутизаторе класса У меня нет __construct.

routercontroller.php

class routerController{
    function __construct($param){
        $this->param = $param;
    }
  • если я добавлю __construct к маршрутизатору класса, __construct из расширенного класса routerController не будет выполнен. Таким образом, кажется, что в этом случае конструктор создается без конструктора parent :: _.

По тому же сценарию, который я получил внутри класса routerController.

$this->newclass = newclass($this->param);

newClass расширяет someClass. По какой-то причине конструктор someClass не создается, если я не вызываю его из newClass, используя parent :: __ construct ($ param).

Я уже часами просматривал весь код и не могу найти, что я делаю неправильно. Почему в первом случае родительский конструктор создается без вызова, а во втором - нет?

Это ошибка? Есть идеи, что я делаю не так?

1 Ответ

1 голос
/ 18 сентября 2011

В PHP родительские конструкторы не вызываются неявно.

Источник: http://php.net/manual/en/language.oop5.decon.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...