无法从父级 class 访问 属性

Can't access property from parent class

我想要实现的唯一目标是能够从 class A 中访问 Sql 属性 class B,不过我的理解一定是完全脱格了

我试过:

class A {
    public $Sql; /*object*/

    public function __construct() {
        $this->Sql = new MySQLi("localhost", "user", "password", "database");
    }
}

class B extends A {

    public function __construct() {
        $this->foo();
    }

    public function foo() {
        var_dump($this->Sql); // NULL
        var_dump(parent::Sql); // Error due to Sql not being a constant, can't set an object as a constant.
    }

}

$A = new A();
$B = new B();

但是代码的行为并不像我希望的那样。

希望有人能指出我出错的正确方向。

$A = new A();
$B = new B();

上面这两行创建了两个不同的对象,它们之间没有任何关系。

因此,由于您在父 class B 中也有一个构造函数 constructor doesn't get called implicit,这意味着您必须更改代码并从 class A 在 [=17= 中调用构造函数] B,例如

public function __construct() {
    parent::__construct();
    $this->foo();
}