Я столкнулся с неожиданным поведением, пытаясь использовать следующее:
$object instanceof $class
1/ Ключевое слово instanceof PHP и пространства имен хорошо работают вместе, как объяснено в официальном документе.
2/ Однако иногда экранирование обратной косой черты приводит к более тонкому (неясному?) поведению, как любезно объяснил Бен в этот хороший пост.
Где-то глубоко в моем коде я установил пару дампов следующим образом:
var_dump($object, $class);
var_dump($object instanceof $class);
который дает мне следующий вывод при запуске моего скрипта:
class Tools\Tests\Entity\testObject#226 (2) {
private $var_one =>
NULL
private $var_two =>
NULL
}
string(36) "Tools\Tests\Entity\testObject"
bool(false)
Класс моего первого дампа точно такой же, как и строка во втором дампе. Однако мой instanceof dump возвращает FALSE. Почему ?
Я играл с обратной косой чертой, но безуспешно. Может быть, я где-то напутал с пространствами имен? Дело в том, что я действительно не знаю, как устранить неполадки дальше. Что я должен попробовать?