![](/img/trans.png)
[英]A property exists in the parent class, but can't be used from the child class
[英]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.