如何通过PHP的Closure实现匿名函数创建方法的长尾?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1857个文字,预计阅读时间需要8分钟。
Closure 类用于表示匿名函数的类。在 PHP 5.3 中引入的匿名函数会在内部产生这种类型的对象。在之后,这个类被视为一个实现细节,但现在可以依赖它来做一些事情。从 PHP 5.4 开始,这个类可用。
Closure 类
用于代表匿名函数的类。
匿名函数(在 PHP 5.3 中被引入)会产生这个类型的对象。在过去,这个类被认为是一个实现细节,但现在可以依赖它做一些事情。自 PHP 5.4 起,这个类带有一些方法,允许在匿名函数创建后对其进行更多的控制。
这个类不能实例化,里面主要有两个方法,都用来复制闭包,一个静态一个动态,下面分别详细讲解下这两个不好理解的方法。
Closure::bind
public static Closure Closure::bind ( Closure $closure , object $newthis [, mixed $newscope = 'static' ] ) 参数说明: closure 需要绑定的匿名函数。 newthis 需要绑定到匿名函数的对象,或者 NULL 创建未绑定的闭包。 newscope 想要绑定给闭包的类作用域,或者 'static' 表示不改变。如果传入一个对象,则使用这个对象的类型名。
本文共计1857个文字,预计阅读时间需要8分钟。
Closure 类用于表示匿名函数的类。在 PHP 5.3 中引入的匿名函数会在内部产生这种类型的对象。在之后,这个类被视为一个实现细节,但现在可以依赖它来做一些事情。从 PHP 5.4 开始,这个类可用。
Closure 类
用于代表匿名函数的类。
匿名函数(在 PHP 5.3 中被引入)会产生这个类型的对象。在过去,这个类被认为是一个实现细节,但现在可以依赖它做一些事情。自 PHP 5.4 起,这个类带有一些方法,允许在匿名函数创建后对其进行更多的控制。
这个类不能实例化,里面主要有两个方法,都用来复制闭包,一个静态一个动态,下面分别详细讲解下这两个不好理解的方法。
Closure::bind
public static Closure Closure::bind ( Closure $closure , object $newthis [, mixed $newscope = 'static' ] ) 参数说明: closure 需要绑定的匿名函数。 newthis 需要绑定到匿名函数的对象,或者 NULL 创建未绑定的闭包。 newscope 想要绑定给闭包的类作用域,或者 'static' 表示不改变。如果传入一个对象,则使用这个对象的类型名。

