我有这些课程
class db {
}
class el {
public function __construct (db $db) {
$this->db = $db;
}
}
class a {
public function __construct (db $db) {
}
}
class b extends a {
public function __construct ($db) {
parent::__construct($db);
}
}
class c extends b {
public function __construct ($db) {
parent::__construct($db);
}
}
如果我实例化课程b一切正常
new b(new el(new db ()));
但是,如果我实例化类c,则会出现错误
new c(new el(new db ()));
PHP Catchable致命错误:传递给:: __ construct()的参数1必须是db的实例,给定的实例
我该怎么做才能解决问题:
答案 0 :(得分:0)
在B类构造函数中使用get_class($this)
,您将能够区别于从C调用父构造函数或直接调用。
请参阅:http://php.net/manual/en/function.get-class.php,示例#2。
Iansus。