типы — PHP instanceof возвращает false для истинного условия

Я полностью сбит с толку относительно того, почему 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.

5

Решение

Если вы используете пространства имен в своем коде, вам нужно предоставить его напрямую:

if ($args[0] instanceof ActiveRecordField) // False

if ($args[0] instanceof \MyCompany\Classes\ActiveRecordField) // True
5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]