1、用来确定一个变量是否属于某个类的实例;
2、用来确定一个变量是否是继承自某一父类的子类的实例;
3、用来确定一个变量是否是实现了某个接口的对象的实例。
<?phpclass A{}class B{}$obj = new A;var_dump($obj instanceof A);echo '<br>';var_dump($obj instanceof B);?>运行结果如下:
bool(true)bool(false)
示例代码如下:
<?phpclass A{}class B extends A{}$obj = new B;var_dump($obj instanceof A);echo '<br>';var_dump($obj instanceof B);?>运行结果如下:
bool(true)bool(true)
示例代码如下:
<?phpinterface A{}class B implements A{}$obj = new B;var_dump($obj instanceof A);echo '<br>';var_dump($obj instanceof B);?>运行结果如下:
bool(true)bool(true)
示例代码如下:
<?phpinterface A{}class B implements A{}$obj = new B;$str1 = 'A';$str2 = 'B';var_dump($obj instanceof A);echo '<br>';var_dump($obj instanceof B);echo '<br>';var_dump($obj instanceof $str1);echo '<br>';var_dump($obj instanceof $str2);?>运行结果如下:
bool(true)bool(true)bool(true)bool(true)
注意:使用字符串代替类名时,需要将字符串赋值给一个变量,直接使用字符串(例如 $obj instanceof 'A')是不行的。
另外,不能使用 instanceof 来检测常量。示例代码如下:
<?php$a = 1;$b = NULL;$c = imagecreate(5, 5);var_dump($a instanceof stdClass);echo '<br>';var_dump($b instanceof stdClass);echo '<br>';var_dump($c instanceof stdClass);echo '<br>';var_dump(FALSE instanceof stdClass);?>
运行结果如下:
bool(false)bool(false)bool(false)bool(false)
instanceof函数是php5中新添的面向对象的函数。他主要的做用是 检测一个给定的对象是否属于(继承于)某个类(class)、某个类的子类、某个接口(interface)。若是是则返回true;反之返回false。
到此这篇关于PHP的instanceof详解及使用方法介绍的文章就介绍到这了,更多相关PHP关键字instanceof详解及使用内容请搜索一聚教程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持一聚教程网!