php Closure类的使用方法


本文摘自PHP中文网,作者怪我咯,侵删。

Closure,匿名函数,又称为Anonymous functions,是php5.3的时候引入的。匿名函数就是没有定义名字的函数。这点牢牢记住就能理解匿名函数的定义了。

PHP Closure类之前在PHP预定义接口中介绍过,但它可不是interface哦,它是一个内部的final类。Closure类是用来表示匿名函数的,所有的匿名函数都是Closure类的实例。

1

2

3

4

5

6

7

8

9

10

$func = function() {

  echo 'func called';

};

var_dump($func); //class Closure#1 (0) { }

$reflect =new ReflectionClass('Closure');

var_dump(

  $reflect->isInterface(), //false

  $reflect->isFinal(), //true

  $reflect->isInternal() //true

);

Closure类结构如下:

Closure::construct ― 用于禁止实例化的构造函数
Closure::bind ― 复制一个闭包,绑定指定的$this对象和类作用域。
Closure::bindTo ― 复制当前闭包对象,绑定指定的$this对象和类作用域。

看一个绑定$this对象和作用域的例子:

1

2

3

4

5

6

7

8

9

class Lang

{

  private $name = 'php';

}

$closure = function () {

  return $this->name;

};

$bind_closure = Closure::bind($closure, new Lang(), 'Lang');

echo $bind_closure(); //php

另外,PHP使用魔术方法invoke()可以使类变成闭包:

1

2

3

4

5

class Invoker {

  public function invoke() {return METHOD;}

}

$obj = new Invoker;

echo $obj(); //Invoker::invoke

以上就是php Closure类的使用方法的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

php 限制某个ip访问的实现方法

mysql优化的思路介绍

php中获取系统信息的方法

用xtrabackup备份mysql数据库方法指导

php Closure类的使用方法

php中的implements 使用详解

基于tags实现内容推荐的方法(代码)

mysql读写分离是什么?主从数据库如何设置?

php限制ip地址范围的实现方法

php实现分页显示代码

更多相关阅读请进入《Closure》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...