0

我正在处理一个 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"
     }
}
4

1 回答 1

0

您在B中覆盖A的构造函数,这意味着 A 的构造函数永远不会被调用,因此永远不会被设置。如果要在 B 中执行 A 的构造函数,则需要显式执行:$attribute

class B extends A {
     public function __construct() {
         parent::__construct(); // This is required if you want to execute A's constructor
         var_dump($this->attribute);
     }
}
于 2013-05-15T16:07:11.927 回答