假設我有兩個類:SuperObject和PageGenerator。從子類獲取父類的字段
PageGenerator(和一堆其他類)繼承SuperObject,並且SuperObject有一個名爲'db_conn'的字段用於數據庫連接。
所以我的代碼看起來是這樣的:
class SuperObject {
protected static $db_conn = null;
public function __construct($db){ $this->db_conn = $db; }
}
class PageGenerator extends SuperObject {
public function some_function(){
//something using parent::$db_conn;
}
}
// somewhere down the way
$so = new SuperObject($db_object);
$page = new PageGenerator();
$page->some_function();
但我認爲我不能做到這一點,至少,不是這樣的。
那又怎麼辦?
呵呵。哇,那有效。做這樣的事情有什麼缺點嗎? – user2900816
只是,你必須記住,靜態屬性是類屬性,但不是對象。這意味着,如果您將在某些情況下更改它,則會爲每個類實例更改靜態屬性的值。 – romik