我在php Object上工作,我有一个问题,我尝试从一个母类调用一个属性(它是一个对象),它是null。我会告诉你我的问题:
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"
}
}
你能帮帮我吗?谢谢。
答案 0 :(得分:0)
你在 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);
}
}