[英]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.