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