[英]PHP OOP : Accessing parent attributes from child / Child inheriting from parent's attributes
所以代碼是:DAO類
abstract class DAO
{
protected $db;
protected $SQL_host='localhost';
protected $SQL_port='3306';
protected $SQL_dbname='projet';
protected $SQL_login='root';
protected $SQL_password='';
protected function __construct()
{
$this->setDb(new PDO('mysql:host='.$this->SQL_host.';port='.$this->SQL_port.';dbname='.$this->SQL_dbname, $this->SQL_login, $this->SQL_password)) ;
}
protected function setDb(PDO $bdd)
{
$this->db = $bdd ;
}
}
和子UserDAO類
class UserDAO extends DAO
{
public function __construct()
{
parent::__construct();
}
}
當UserDAO子類從父DAO繼承時,子對象是否獲得父級的屬性? 如果沒有,我該怎么做?
我一直在環顧四周,他們大多告訴我要使用get函數,但這並不是我要嘗試的。 謝謝你的幫助
是的,子類繼承了父類的成員。
我和你有同樣的問題。 我希望子類繼承數據庫pdo實例。 問題是,如果我有多個模型(例如“用戶”和“文檔”),那么最終會創建多個pdo實例(超級浪費)。 我求助於依賴注入。 我在類之外創建了實例,然后將其傳遞給需要pdo的任何類:
class UserDAO extends DAO
{
public function __construct($db=NULL)
{
if($db){//if database is requested
parent::__construct($db);
}
}
}
有很多支持或反對依賴注入的論點-但我發現這對我自己最有效。
在回答您的問題時,您似乎做對了(不過,就像我說的那樣,使用PDO可能不是最好的選擇)。 確保兩個類都包含在腳本中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.