[英]PHP instanceof returns false for true condition
我很困惑為什么 php 的instanceof
運算符堅持認為這里的 LVALUE 不是定義類的實例,而get_class
說它是。
class WhereIn {
public function __construct($args) {
echo "is instanceof: " . ($args[0] instanceof ActiveRecordField) . EOL;
echo "get class: " . get_class($args[0]) . EOL;
}
}
這個方法的輸出是:
is instanceof:
get class: ActiveRecordField
作為參考,我使用的是 PHP 5.6.9。
如果在代碼中使用命名空間,則需要直接提供:
if ($args[0] instanceof ActiveRecordField) // False
if ($args[0] instanceof \MyCompany\Classes\ActiveRecordField) // True
正如@Pmpr 提到的,您需要直接提供它。
您可以包含如下類:
use \MyCompany\Classes\ActiveRecordField;
class WhereIn {
public function __construct($args) {
echo "is instanceof: " . ($args[0] instanceof ActiveRecordField) . EOL;
echo "get class: " . get_class($args[0]) . EOL;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.