我正在一个PHP对象上工作,我有一个问题,我试图从一个母类调用一个属性(这是一个对象),它是空的。我来告诉你我的问题:
Class A {
protected $attribute;
public function __construct() {
$this->attribute = new C();
}
public function foo() {
new B();
}
}
Class B extends A {
public function __construct() {
var_dump($this->attribute) // show "NULL"
}
}
在B中重写了A的构造函数,这意味着A的构造函数永远不会被调用,因此$attribute
永远不会被设置。如果要在B中执行A的构造函数,则需要显式执行:
class B extends A {
public function __construct() {
parent::__construct(); // This is required if you want to execute A's constructor
var_dump($this->attribute);
}
}