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 ;
    }

    }

和子用户 DAO 类

     class UserDAO extends DAO 
     {
     public function __construct()
     {
         parent::__construct();
     }
     }

当用户DAO子类继承自父DAO时,子类是否获得父级的属性?如果没有,我怎么能做到呢?

我一直在环顾四周,他们大多告诉使用 get 函数,但这真的不是我想做的。 感谢您的帮助

是的,子类继承父类的成员。

我和你一样有同样的问题。我希望子类继承数据库 pdo 实例。问题是,如果我有多个模型(例如"用户"和"文档"),它最终会创建多个 pdo 实例(超级浪费)。我诉诸依赖注入。我在类外部创建了实例,然后将其传递给任何需要 pdo 的类:

class UserDAO extends DAO 
{
     public function __construct($db=NULL)
     {
         if($db){//if database is requested
        parent::__construct($db);
    }
     }
}

有很多支持或反对依赖注入的论据 - 但我发现这对我自己来说是最有效的。

在回答你的问题时,你似乎做对了(尽管,就像我说的,使用 PDO 它可能不是最好的)。确保脚本中包含这两个类。