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 相关文章推荐
同时提取多条新闻中的文本一例
Oct 09 PHP
生成sessionid和随机密码的例子
Oct 09 PHP
php数组总结篇(一)
Sep 30 PHP
QueryPath PHP 中的jQuery
Apr 11 PHP
一个基于PDO的数据库操作类
Mar 24 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
Jul 25 PHP
用PHP代码给图片加水印
Jul 01 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
Oct 10 PHP
php 无限分类 树形数据格式化代码
Oct 11 PHP
php实现等比例不失真缩放上传图片的方法
Nov 14 PHP
PHP中define() 与 const定义常量的区别详解
Jun 25 PHP
Yii框架布局文件的动态切换操作示例
Nov 11 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 ZipArchive压缩函数详解实例
2013/11/06 PHP
PHP提取字符串中的手机号正则表达式怎么写
2017/07/17 PHP
Ext 表单布局实例代码
2009/04/30 Javascript
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
2013/04/24 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
js实现select跳转功能代码
2014/10/22 Javascript
jQuery插件Tmpl的简单使用方法
2015/04/27 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
Jquery调用iframe父页面中的元素及方法
2016/08/23 Javascript
最常见的左侧分类菜单栏jQuery实现代码
2016/11/28 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
Angular 2父子组件之间共享服务通信的实现
2017/07/04 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
layui复选框的全选与取消实现方法
2019/09/02 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
Python获取SQLite查询结果表列名的方法
2017/06/21 Python
python读取与写入csv格式文件的示例代码
2017/12/16 Python
Python XML转Json之XML2Dict的使用方法
2019/01/15 Python
flask框架渲染Jinja模板与传入模板变量操作详解
2020/01/25 Python
基于pytorch padding=SAME的解决方式
2020/02/18 Python
python3 xpath和requests应用详解
2020/03/06 Python
python实现图片素描效果
2020/09/26 Python
CSS3中Animation动画属性用法详解
2016/07/04 HTML / CSS
阿玛尼化妆品美国官网:Giorgio Armani Beauty
2017/02/02 全球购物
MAC彩妆英国官网:M·A·C UK
2018/05/30 全球购物
璀璨的珍珠、密钉和个性化珠宝:Lily & Roo
2021/01/21 全球购物
先进集体获奖感言
2014/02/13 职场文书
中班幼儿评语大全
2014/04/30 职场文书
班级活动总结格式
2014/08/30 职场文书
公司承诺书格式范文
2015/04/28 职场文书
警示教育片观后感
2015/06/17 职场文书
奠基仪式致辞
2015/07/30 职场文书
python如何为list实现find方法
2022/05/30 Python