제 질문은 객체 지향 PHP의 상속 메커니즘에 관한 것입니다. 클래스 변수를 생성자와 모든 자식 클래스에서 수퍼 클래스로 초기화하여 초기화 된 변수를 사용하려면 슈퍼 클래스 생성자가 암시 적으로 호출되지 않으므로 수퍼 클래스의 생성자에서이 작업을 수행 할 수 없습니다. 자바에서와 마찬가지로 children 클래스 생성자. 모든 하위 생성자에서 수퍼 클래스 생성자를 수동으로 호출해야하는 경우 모든 자식 클래스 생성자에서 초기화를 수행하는 것만 큼 이점이 없습니다.슈퍼 클래스의 PHP 변수 초기화
이 문제를 어떻게 해결할 수 있습니까? 어떤 아이디어?
class superclass {
protected $a;
function __construct() {
$this->a = new Foo();
}
}
class childrenclass1 extends superclass {
function __construct() {
do_something;
}
function childrenfunction() {
$this->a->method(); // not initalized;
}
}
올바른 코드 샘플로 시나리오를 설명하십시오. – Lion
이 도움이되는지 확인하십시오 : http://stackoverflow.com/questions/9428077/php-superclass-and-subclass – Maximus2012
수퍼 클래스의 생성자에서 변수를 초기화하고이를 하위 클래스에서 사용하려는 경우 '생성자를 호출하면 부모 생성자를'parent :: __ construct()'와 같이 호출해야합니다. –