母类属性返回NULL


Mother class attribute return NULL

我正在一个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);
     }
}