php的instanceof和判断闭包Closure操作示例
发布:smiling 来源: PHP粉丝网 添加日期:2022-02-08 08:59:40 浏览: 评论:0
本文实例讲述了php的instanceof和判断闭包Closure,分享给大家供大家参考,具体如下:
类型运算符
instanceof 用于确定一个 PHP 变量是否属于某一类 class 的实例,在此之前用 is_a(),但是后来 is_a() 被废弃
- <?php
- class MyClass
- {
- }
- class NotMyClass
- {
- }
- $a = new MyClass;
- var_dump($a instanceof MyClass);
- var_dump($a instanceof NotMyClass);
- ?>
以上例程会输出:
bool(true)
bool(false)
instanceof 也可用来确定一个变量是不是继承自某一父类的子类的实例:
Example #2 对继承类使用 instanceof
- <?php
- class ParentClass
- {
- }
- class MyClass extends ParentClass
- {
- }
- $a = new MyClass;
- var_dump($a instanceof MyClass);
- var_dump($a instanceof ParentClass);
- ?>
以上例程会输出:
bool(true)
bool(true)
Closure 类
用于代表 匿名函数 的类.
匿名函数(在 PHP 5.3 中被引入)会产生这个类型的对象。在过去,这个类被认为是一个实现细节,但现在可以依赖它做一些事情。自 PHP 5.4 起,这个类带有一些方法,允许在匿名函数创建后对其进行更多的控制。
除了此处列出的方法,还有一个 __invoke 方法。这是为了与其他实现了 __invoke()魔术方法 的对象保持一致性,但调用匿名函数的过程与它无关。
类摘要
- Closure {
- /* 方法 */
- __construct ( void )
- public static Closure bind ( Closure $closure , object $newthis [, mixed $newscope = 'static' ] )
- public Closure bindTo ( object $newthis [, mixed $newscope = 'static' ] )
- }
- Table of Contents
Closure::__construct — 用于禁止实例化的构造函数
Closure::bind — 复制一个闭包,绑定指定的$this对象和类作用域。
Closure::bindTo — 复制当前闭包对象,绑定指定的$this对象和类作用域。
判断是不是闭包
- if ( $this->{$method} instanceof Closure ) {
- return call_user_func_array($this->{$method},$args);
- } else {
- throw new Exception("Invalid Function");
- }
- //一切都要自行测试
- if ( $class instanceof Closure ) {
- } else {
- }
参考:
http://php.net/manual/zh/language.operators.type.php
http://php.net/manual/zh/class.closure.php
Tags: instanceof Closure
- 上一篇:PHP数据源架构模式之表入口模式实例分析
- 下一篇:最后一页
相关文章
- ·php的闭包(Closure)匿名函数初探(2021-07-09)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)