简介

instanceof 类型运算符:

  1. 对类使用 instanceof,用来确定一个变量是否属于某个类的实例;
  2. 对继承类使用 instanceof,用来确定一个变量是否是继承自某一父类的子类的实例;
  3. 使用 instanceof 检查对象不是某个类的实例;
  4. 对接口使用 instanceof,用来确定一个变量是否是实现了某个接口的对象的实例。

实例

1. 对类使用 instanceof

用来确定一个变量是否属于某个类的实例

  1. <?php
  2. class MyClass
  3. {
  4. }
  5. class NotMyClass
  6. {
  7. }
  8. $a = new MyClass;
  9. var_dump($a instanceof MyClass);
  10. //输出:bool(true) , $a 变量属于 MyClass 类
  11. var_dump($a instanceof NotMyClass);
  12. //输出:bool(false) , $a 变量不属于 NotMyClass 类
  13. ?>

2. 对继承类使用 instanceof

用来确定一个变量是否是继承自某一父类的子类的实例

<?php

class ParentClass
{
}

class MyClass extends ParentClass
{
}

$a = new MyClass;

var_dump($a instanceof MyClass);
//输出:bool(true) , $a 变量继承于 MyClass 类

var_dump($a instanceof ParentClass);
//输出:bool(true) , $a 变量继承于 MyClass 类的父类 ParentClass 类

?>

3. 使用 instanceof 检查对象不是某个类的实例

<?php
class MyClass
{
}

$a = new MyClass;

var_dump(!($a instanceof stdClass));
//输出:bool(true) 

?>

4. 对接口使用 instanceof

用来确定一个变量是否是实现了某个接口的对象的实例。

<?php
interface MyInterface
{
}

class MyClass implements MyInterface
{
}

$a = new MyClass;

var_dump($a instanceof MyClass);
//输出:bool(true)

var_dump($a instanceof MyInterface);
//输出:bool(true)

?>