PHPで突然これに直面しました:
<?php
class MyClass{};
$a=new MyClass();
$b="MyClass";
var_dump($a instanceof $b);
結果:
bool(true)
なぜこれが真実なのですか?
PHPで突然これに直面しました:
<?php
class MyClass{};
$a=new MyClass();
$b="MyClass";
var_dump($a instanceof $b);
結果:
bool(true)
なぜこれが真実なのですか?
ドキュメントを確認してください、例5 :(強調鉱山)
通常、instanceof はリテラル クラス名と共に使用されますが、別のオブジェクトまたは文字列変数と共に使用することもできます。
$a = new MyClass;
var_dump($a instanceof $c); // $c is a string 'MyClass'
結果:
bool(true)
instanceofは通常、リテラルクラス名で使用されますが、別のオブジェクトまたは文字列変数で使用することもできます。
演算子はクラスを操作できますinstanceof
が、文字列としてクラス名を操作することもできます。
instanceofは通常、リテラルクラス名で使用されますが、別のオブジェクトまたは文字列変数で使用することもできます。
http://php.net/manual/en/language.operators.type.php
そして、あなたが投稿した正確な例があるので、あなたの例はどこから来たのかわかりませんが...