-3

PHPで突然これに直面しました:

<?php
  class MyClass{}; 
  $a=new MyClass(); 
  $b="MyClass"; 
  var_dump($a instanceof $b);

結果:

bool(true)

なぜこれが真実なのですか?

4

3 に答える 3

7

ドキュメントを確認してください、例5 :(強調鉱山)

通常、instanceof はリテラル クラス名と共に使用されますが、別のオブジェクトまたは文字列変数と共に使用することもできます。

$a = new MyClass;
var_dump($a instanceof $c); // $c is a string 'MyClass'

結果:

bool(true)
于 2012-10-23T13:54:25.417 に答える
2

instanceofは通常、リテラルクラス名で使用されますが、別のオブジェクトまたは文字列変数で使用することもできます。

http://php.net/instanceof

于 2012-10-23T13:55:22.367 に答える
2

演算子はクラスを操作できますinstanceofが、文字列としてクラス名を操作することもできます。

instanceofは通常、リテラルクラス名で使用されますが、別のオブジェクトまたは文字列変数で使用することもできます。

http://php.net/manual/en/language.operators.type.php

そして、あなたが投稿した正確な例があるので、あなたの例はどこから来たのかわかりませんが...

于 2012-10-23T13:55:32.510 に答える