所以代码是: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功能,但这真的不是我想要做的。谢谢你的帮助
答案 0 :(得分:2)
是的,子类继承了父类的成员。
答案 1 :(得分:1)
我和你一样有同样的问题。我希望子类继承数据库pdo实例。问题是,如果我有多个模型(例如“用户”和“文档”),它最终会创建多个pdo实例(超级浪费)。我求助于依赖注入。我在类之外创建了实例,然后将它传递给任何需要pdo的类:
class UserDAO extends DAO
{
public function __construct($db=NULL)
{
if($db){//if database is requested
parent::__construct($db);
}
}
}
支持或反对依赖注入有很多参数 - 但我发现这对我自己来说效率最高。
在回答你的问题时,似乎你做得对(但就像我说的那样,PDO可能不是最好的)。确保脚本中包含这两个类。