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模拟HTTP认证
Oct 09 PHP
利用PHP动态生成VRML网页
Oct 09 PHP
php在线生成ico文件的代码
Oct 09 PHP
PHP array_push 数组函数
Dec 26 PHP
让Json更懂中文(JSON_UNESCAPED_UNICODE)
Oct 27 PHP
Zend的MVC机制使用分析(二)
May 02 PHP
浅谈php中mysql与mysqli的区别分析
Jun 10 PHP
PHP判断是否有Get参数的方法
May 05 PHP
php打印输出棋盘的实现方法
Dec 23 PHP
PHP长连接实现与使用方法详解
Feb 11 PHP
PHP实现链表的定义与反转功能示例
Jun 09 PHP
PHP pthreads v3下worker和pool的使用方法示例
Feb 21 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
在PHP3中实现SESSION的功能(一)
2006/10/09 PHP
php使用ob_start()实现图片存入变量的方法
2014/11/14 PHP
php数组指针操作详解
2017/02/14 PHP
PHP使用DOM对XML解析处理操作示例
2019/07/04 PHP
使用Javascript接收get传递的值的代码
2011/11/30 Javascript
JS嵌套函数调用上下文的问题解决
2014/03/26 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
jQuery自动完成插件completer附源码下载
2016/01/04 Javascript
js仿百度登录页实现拖动窗口效果
2016/03/11 Javascript
javaScript事件机制兼容【详细整理】
2016/07/23 Javascript
JS只能输入正整数的简单实例
2016/10/07 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
2017/11/08 jQuery
Angular父子组件通过服务传参的示例方法
2018/10/31 Javascript
js中的reduce()函数讲解
2019/01/18 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
[03:52]DOTA2英雄基础教程 酒仙
2013/12/23 DOTA
[10:21]2018DOTA2国际邀请赛寻真——Winstrike
2018/08/11 DOTA
python中threading超线程用法实例分析
2015/05/16 Python
python实现xlsx文件分析详解
2018/01/02 Python
python根据unicode判断语言类型实例代码
2018/01/17 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
2018/10/11 Python
django 基于中间件实现限制ip频繁访问过程详解
2019/07/30 Python
Python字符串三种格式化输出
2020/09/17 Python
英国经济型酒店品牌:Travelodge
2019/12/17 全球购物
异常和异常类的概念
2014/09/12 面试题
找工作求职信
2014/07/07 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
检查机关党的群众路线个人整改措施
2014/10/04 职场文书
银行先进个人总结
2015/02/15 职场文书
2015年大学迎新晚会总结
2015/07/16 职场文书
青年文明号创建口号大全
2015/12/25 职场文书
创业计划书之水果店
2019/07/18 职场文书
家电创业计划书
2019/08/05 职场文书
详解Redis主从复制实践
2021/05/19 Redis
人工智能深度学习OpenAI baselines的使用方法
2022/05/20 Python