我有4個班,一個數據庫助手和3這樣定義:如何在由其子類共享的父類中創建對象?
abstract class PageElement
{
protected $db;
abstract public function reconstruct($from, $params = array());
protected function construct_from_db($id, $k)
{
$this->db = new Database(0);
$query = "SELECT * FROM $k WHERE id = %d";
$results = $this->db->db_query(DB_ARRAY, $query, $id);
return $results[0];
}
}
class Section extends PageElement
{
function __construct($construct, $args = array())
{
$params = $this->construct_from_db($args, 'sections');
}
//other methods
}
class Toolbar extends PageElement
{
function __construct($construct, $args = array())
{
$params = $this->construct_from_db($args, 'toolbars');
}
//other methods
}
現在,每個孩子都有它的數據庫對象的自己的實例。我如何在父類中創建數據庫對象並將其分享給每個孩子?
注:
- 我讀過有關的辛格爾頓的做法,但我不能使用它,因爲我 必須連接到不同的數據庫。
- 值得注意的是,Section類創建了一個Toolbar類的實例。
另一個問題是,出於某種原因,我無法關閉mysql連接。當我運行的代碼,這會出現警告:
mysql_close():7不** * * \班一個有效的MySQL-Link的資源\ database.class上線127
嘿,「Simpleton」。它實際上是「Singleton」;) – jprofitt
Ahaha!是。我的錯!!! – Tivie