php的instanceof和判断闭包Closure操作示例


Posted in PHP onJanuary 26, 2020

本文实例讲述了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

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
用PHP和ACCESS写聊天室(一)
Oct 09 PHP
一个MYSQL操作类
Nov 16 PHP
php仿ZOL分页类代码
Oct 02 PHP
使用eAccelerator加密PHP程序
Oct 03 PHP
php array_intersect比array_diff快(附详细的使用说明)
Jul 03 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
Nov 25 PHP
smarty内置函数foreach用法实例
Jan 22 PHP
php使用iconv中文截断问题的解决方法
Feb 11 PHP
PHP中把对象转换为关联数组代码分享
Apr 09 PHP
PHP内核探索:哈希表碰撞攻击原理
Jul 31 PHP
PHP的openssl加密扩展使用小结(推荐)
Jul 18 PHP
PHP二维数组去重实例分析
Nov 18 PHP
yii2.0框架场景的简单使用示例
Jan 25 #PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
Jan 25 #PHP
laravel框架模型和数据库基础操作实例详解
Jan 25 #PHP
laravel框架分组控制器和分组路由实现方法示例
Jan 25 #PHP
laravel框架中间件简单使用方法示例
Jan 25 #PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
Jan 23 #PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
Jan 23 #PHP
You might like
php对图像的各种处理函数代码小结
2013/07/08 PHP
分享下页面关键字抓取components.arrow.com站点代码
2014/01/30 PHP
使用PHP导出Redis数据到另一个Redis中的代码
2014/03/12 PHP
PHP基于imap获取邮件实例
2014/11/11 PHP
php中base_convert()进制数字转换函数实例
2014/11/20 PHP
从刷票了解获得客户端IP的方法
2015/09/21 PHP
PHP表单数据写入MySQL数据库的代码
2016/05/31 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
javascript中call和apply方法浅谈
2013/09/27 Javascript
jQuery(js)获取文字宽度(显示长度)示例代码
2013/12/31 Javascript
删除javascript中注释语句的正则表达式
2014/06/11 Javascript
js 连续赋值的简单实现
2016/06/13 Javascript
JS读写CSS样式的方法汇总
2016/08/16 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
vue2.0 下拉框默认标题设置方法
2018/08/22 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
vue项目打包之开发环境和部署环境的实现
2020/04/23 Javascript
支付宝小程序实现省市区三级联动
2020/06/21 Javascript
Vue中keep-alive组件的深入理解
2020/08/23 Javascript
python利用dir函数查看类中所有成员函数示例代码
2017/09/08 Python
PyQt5利用QPainter绘制各种图形的实例
2017/10/19 Python
Python进程间通信Queue实例解析
2018/01/25 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
2018/07/16 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
2018/10/29 Python
tensorflow实现在函数中用tf.Print输出中间值
2020/01/21 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
如何用Python提取10000份log中的产品信息
2021/01/14 Python
捷克领先的户外服装及配件市场零售商:ALPINE PRO
2018/01/09 全球购物
结婚邀请函范文
2014/01/14 职场文书
新疆民族团结演讲稿
2014/08/27 职场文书
干部个人考察材料
2014/12/24 职场文书
2015年关爱留守儿童工作总结
2015/05/22 职场文书
十七岁的单车观后感
2015/06/12 职场文书
奖学金发言稿(范文)
2019/08/21 职场文书
使用php的mail()函数实现发送邮件功能
2021/06/03 PHP