PHP实例讲解:巧用instanceof判断类实例与Closure闭包类型
本文通过实例来讲述 php 的 instanceof 以及对闭包 Closure 的判断。将其分享给大家,供大家作为参考,具体情况如下:

类型运算符
instanceof 是用来确定一个 PHP 变量是否为某一类 class 的实例的。在此之前,人们使用 is_a()。不过后来,is_a()被废弃了。
?php
class MyClass
{
}
class NotMyClass
{
}
$a = new MyClass;
判断 $a 是否是 MyClass 的实例。
判断 $a 是否是 NotMyClass 的实例,通过 var_dump 函数输出结果。
?>
以上例程会输出:
bool(true)
bool(false)
instanceof 能够用来判断一个变量是否为继承自某一父类的子类的实例。
Example #2 对继承类使用 instanceof
?php
class ParentClass
{
}
ParentClass 被 MyClass 继承。
{
}
$a = new MyClass;
var_dump($a instanceof MyClass);
检查变量 $a 是否是 ParentClass 的实例,通过 var_dump 函数进行输出。
?>
以上例程会输出:
bool(true)
bool(true)
Closure 类
用于代表 匿名函数 的类.
匿名函数在 PHP 5.3 中被引入,它会产生这种类型的对象。过去,这个类被当作一个实现细节,不过现在可以依靠它来做一些事情。从 PHP 5.4 开始,这个类带有一些方法,能够在匿名函数创建之后对其进行更多的控制。
除了此处所列出的那些方法之外,还有一个 __invoke 方法。其存在的目的是要与其他那些实现了 __invoke()魔术方法的对象保持一致性,然而,调用匿名函数的这个过程与它是没有关系的。
类摘要
Closure {
/* 方法 */
__construct ( void )
静态的 Closure 函数 bind 接收一个 Closure 类型的参数 $closure ,一个 object 类型的参数 $newthis ,还可以接收一个可选的 mixed 类型参数 $newscope ,其默认值为'static' 。
该函数 `bindTo` 接收一个对象 `$newthis` 作为参数,还可以接收一个可选的参数 `$newscope`,其默认值为 `'static'`,用于绑定到指定的对象或作用域。
}
Table of Contents
判断是不是闭包
倘若这个对象的那个方法属于闭包实例,就会有相应的情况发生。
调用$this->{$method}这个方法,并将参数$args传递给它,然后返回调用的结果。
} else {
抛出一个新的异常,异常信息为“无效函数”。
}
//一切都要自行测试
如果 $class 是 Closure 的实例,那么
} else {
}
参考:
感兴趣 PHP 相关内容的读者可以查看本站的这些专题:《php 面向对象程序设计入门教程》;《PHP 基本语法入门教程》;《PHP 运算与运算符用法总结》;《PHP 网络编程技巧总结》;《PHP 数组(Array)操作技巧大全》;《php 字符串(string)用法总结》;《php+mysql 数据库操作入门教程》;《php 常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。