簡體   English   中英

無法訪問父類的屬性

[英]Can't access property from parent class

我唯一想實現的就是能夠從類B訪問類A中Sql屬性,但是我的理解必須完全脫離網格。

我試過了:

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();

上面的這兩行創建了2個不同的對象,彼此之間沒有任何關系。

因此,由於您在類B中也有一個構造函數,因此父構造函數不會被稱為隱式 ,這意味着您必須更改代碼並從類B中的類A調用該構造函數,例如

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM