Проблема с объектами в PHP - PullRequest
0 голосов
/ 01 марта 2011

У меня проблема с объектами в PHP.

http://codepad.org/HdqCVJlw

<?php
error_reporting( E_ALL | E_STRICT );
##
class Loader {
    function view() {
        echo 'I did it! )';
    }
}
class Controller {
    public $loader;
    function __construct() {
        $this -> loader = new Loader;
    }
}

##
class Foo extends Controller {
    function index() {
        $this -> loader -> view();
    }
}

Существует три класса: Loader, Controller и Foo. Я хочу использовать метод класса Loader в Foo классе. Я знаю, что __construct() не будет работать, потому что Foo простирается от Controller, но в любом случае я не получаю никакой ошибки.

Так, как использовать этот метод там с условием, что в Foo мне не нужно будет писать больше кода?

P.S. Я создаю MVC ...

Ответы [ 2 ]

4 голосов
/ 01 марта 2011

Я знаю, что __construct() не будет работать, потому что Foo выходит из контроллера, но в любом случае я не получаю никакой ошибки.

При создании экземпляра Foo, Controller__construct() будет запускаться .

Исключение составляют случаи, когда вы набираете __construct() в Foo и забыли вызвать parent::__construct().

Отправленный вами код отлично работает .

0 голосов
/ 01 марта 2011

Добавить конструктор в Foo, который вызывает parent::__construct();.

http://php.net/manual/en/language.oop5.decon.php

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