【问题标题】:Mother class attribute return NULL母类属性返回 NULL
【发布时间】:2013-05-10 07:25:45
【问题描述】:

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

【问题讨论】:

  • 通常称为“父类”。

标签: php class object parent


【解决方案1】:

您在 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);
     }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-03
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 2019-07-17
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多