[英]check in php if a object is a instance of a class but not a instance of a subclass
我有這些課
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 ()));
但是如果我實例化類,就會出錯
new c(new el(new db ()));
PHP可捕獲的致命錯誤:傳遞給a :: __ construct()的參數1必須是db的實例,給定el的實例
我應該怎么做才能解決這種情況:
在B類構造函數中使用get_class($this)
,您將能夠區別於從C調用父構造函數還是直接調用。
參見: http : //php.net/manual/en/function.get-class.php ,示例2。
Iansus。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.