UNPKG

manual-php

Version:
123 lines (85 loc) 1.58 kB
# 类型运算符 检测一个变量是否是某个类的实例。 ```php <?php class Foo { // } class Bar { // } $foo = new Foo(); var_dump($foo instanceof Foo); // bool(true) var_dump($foo instanceof Bar); // bool(false) ``` 检测一个变量是否不是某个类的实例。 ```php <?php class Foo { // } $foo = new Foo(); var_dump(!($foo instanceof stdClass)); // bool(true) ``` 检测一个变量是否是继承自某个父类的子类的实例。 ```php <?php class Foo { // } class Bar extends Foo { // } $bar = new Bar(); var_dump($bar instanceof Foo); // bool(true) var_dump($bar instanceof Bar); // bool(true) ``` 检测一个变量是否是实现某个接口的实例。 ```php <?php interface Foo { // } class Bar implements Foo { // } $bar = new Bar(); var_dump($bar instanceof Foo); // bool(true) var_dump($bar instanceof Bar); // bool(true) ``` 检测一个变量是否是某个对象或字符串变量的实例。 ```php <?php interface Foo { // } class Bar implements Foo { // } $bar = new Bar(); $baz = 'Foo'; $qux = 'Bar'; var_dump($bar instanceof $baz); // bool(true) var_dump($bar instanceof $qux); // bool(true) ``` 如果被检测的变量不是对象,则并不发出任何错误信息而是返回 `false` 。 ```php <?php $foo = 1; var_dump($foo instanceof stdClass); // bool(false) $bar = []; var_dump($bar instanceof stdClass); // bool(false) $baz = null; var_dump($baz instanceof stdClass); // bool(false) $qux = false; var_dump($qux instanceof stdClass); // bool(false) ```