PHP의 객체에 문제가 있습니다. Loader
, Controller
및 Foo
: PHP의 객체와 관련된 문제
<?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();
}
}
은 세 가지 클래스가 있습니다.
Foo
클래스에 클래스 로더의 메소드를 사용하고 싶습니다. 은 에서
Controller
으로 확장 되었기 때문에 실행되지 않을 것입니다. 그러나 어쨌든 오류는 발생하지 않습니다.
그런 식으로 그 방법을 사용하는 방법은 Foo
에 더 많은 코드를 작성할 필요가 없습니까?
P. 나는 푸 컨트롤러에서 확장 때문에 __construct()
이 실행되지 않을 것이라는 점을 알고
귀하의 문제를 이해하지 못합니다. 귀하의 코드는 여기에서 작동합니다 ... – Rodolphe
* (sidenote) * 컨트롤러가 실제로 특수화 된 로더인지 스스로에게 문의하십시오. 그 대답이 No이면 Controller는 Loader에서 상속하지 않아야합니다. Controller가 Loader를 사용한다면, 상속에 대해 Composition/Aggregation을 선호해야합니다. – Gordon