2012-10-23 130 views
-3

在PHP突然面对这样的:为什么一个类是一个字符串的实例?

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

结果:

bool(true) 

为什么这是真的吗?

+2

因为'$ a'对象是名为'MyClass'的类的实例吗? – nickb

+0

尼克这是一​​个字符串。大声笑 – VoronoiPotato

+1

尝试与'==='和它的假,猜为什么 – Soundz

回答

7

检查the documentation, example 5

$a = new MyClass; 
var_dump($a instanceof $c); // $c is a string 'MyClass' 
:(重点煤矿)

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

结果:

bool(true) 
2

instanceof操作者可以使用类工作,也与类名作为串。

虽然的instanceof通常与文字类名使用,也可与其他物体或一个字符串变量

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

使用,还有您发布确切的例子,所以我不不知道你从哪里来,但是...

相关问题