簡體   English   中英

PHP instanceof 為真條件返回假

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM