繁体   English   中英

PHP OOP:从子级访问父级属性/从父级属性继承的子级

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM