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中的cookie
Nov 26 PHP
PHP中的extract的作用分析
Apr 09 PHP
php URL编码解码函数代码
Mar 10 PHP
php 字符过滤类,用于过滤各类用户输入的数据
May 27 PHP
php 读取shell管道传输过来的内容
Mar 01 PHP
php XPath对XML文件查找及修改实现代码
Jul 27 PHP
基于php使用memcache存储session的详解
Jun 25 PHP
PHP数组排序函数合集 以及它们之间的联系分析
Jun 27 PHP
PHP实现的简单mock json脚本分享
Feb 10 PHP
php使用array_search函数实现数组查找的方法
Jun 12 PHP
php加密之discuz内容经典加密方式实例详解
Feb 04 PHP
laravel Model 执行事务的实现
Oct 10 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
Excel数据导入Mysql数据库的实现代码
2008/06/05 PHP
php urlencode()与urldecode()函数字符编码原理详解
2011/12/06 PHP
phpStudy访问速度慢和启动失败的解决办法
2015/11/19 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
Javascript中的异步编程规范Promises/A详细介绍
2014/06/06 Javascript
超级简单的jquery操作表格方法
2014/12/15 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
2015/11/19 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
基于jQuery实现Tabs选项卡自定义插件
2016/11/21 Javascript
用原生js做单页应用
2017/01/17 Javascript
JS获取本周周一,周末及获取任意时间的周一周末功能示例
2017/02/09 Javascript
AngularJS动态绑定ng-options的ng-model实例代码
2017/06/21 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
vue实现留言板todolist功能
2017/08/16 Javascript
vue-cli 组件的导入与使用教程详解
2018/04/11 Javascript
iconfont的三种使用方式详解
2018/08/05 Javascript
关于微信小程序bug记录与解决方法
2018/08/15 Javascript
JS实现的雪花飘落特效示例
2019/12/03 Javascript
python类定义的讲解
2013/11/01 Python
Python 中pandas.read_excel详细介绍
2017/06/23 Python
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
2019/04/12 Python
python控制nao机器人身体动作实例详解
2019/04/29 Python
使用python客户端访问impala的操作方式
2020/03/28 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
经济实惠的豪华背包和行李袋:Packs Project
2018/10/17 全球购物
优秀中学生事迹材料
2014/01/31 职场文书
教师个人剖析材料
2014/02/05 职场文书
《诚实与信任》教学反思
2014/04/10 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
初三学生语文考试作弊检讨书
2014/12/14 职场文书
欢迎词范文
2015/01/27 职场文书
求职简历自我评价怎么写
2015/03/10 职场文书
CSS3实现的3D隧道效果
2021/04/27 HTML / CSS