为什么类是字符串的实例?

时间:2012-10-23 13:51:11

标签: php

在PHP中突然遇到这个问题:

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

结果:

bool(true)

为什么这是真的?

3 个答案:

答案 0 :(得分:7)

检查the documentation, example 5 :(强调我的)

  

尽管instanceof通常与文字类名一起使用,但它可以   也可以与其他对象一起使用或字符串变量

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

结果:

bool(true)

答案 1 :(得分:2)

尽管instanceof通常与文字类名一起使用,但它也可以与另一个对象或字符串变量一起使用

http://php.net/instanceof

答案 2 :(得分:2)

instanceof运算符可以使用类,但也可以使用类名作为字符串。

  

尽管instanceof通常与文字类名一起使用,但它也可以与另一个对象或字符串变量一起使用

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

并且有你发布的确切示例,所以我不知道你的来自哪里,但是......