class a
{
public function __construct()
{
$this->id = 123;
}
}
class b extends a
{
public function __construct()
{
echo parent::id;
}
}
如何將第一類$ this中設置的變量傳遞給第二類?PHP基本OOP問題
class a
{
public function __construct()
{
$this->id = 123;
}
}
class b extends a
{
public function __construct()
{
echo parent::id;
}
}
如何將第一類$ this中設置的變量傳遞給第二類?PHP基本OOP問題
正確的方法是簡單地在您的子類中使用$this->id
。所有公共/保護變量都可以通過這種方式用於子類。通過分配$this->id
而不聲明它,你已經隱含地公開它。一般來說,你應該明確地聲明變量在基類來記錄你的意圖把它公開:
class a
{
public $id;
public function __construct()
{
$this->id = 123;
}
}
只記得打電話給parent::__construct()
您嘗試訪問成員由父類中設置之前。與某些語言(C++)不同,父類的構造函數不會自動爲您調用。
class b extends a
{
public function __construct()
{
parent::__construct();
echo $this->id;
}
}
您可以使用parent::__construct()
來獲取在父類中初始化的東西。如果您在子類中沒有任何初始化內容,則可以在子類中避免__construct()
,並且它會自動採用父構造。
在這種情況下,您可能無法使用'parent :: id;',因爲它不是父類中的靜態屬性。 – Shameer 2011-03-21 04:32:19