前言
最近很久没有更新 Blog 了,上班之后确实回家已经是瘫软状态,没办法搬砖要负责任,有奇葩需求要让奇葩需求不奇葩。
作为一个现代的 PHP 程序员很少有不接触 Laravel 的吧,接触了 Laravel 或多或少要接触 Collection 类,接触了 Collection 类肯定会接触到 Closure。
Collection 类是一个很好的工具类,用起来各种优雅,这里我们先卖个关子后面再源码解析 Collection 类。今天我们讲的是 Closure 闭包类的使用。
Closure 闭包类
Closure 类是用于代表匿名函数的类,匿名函数会产生这个类型的对象,Closure 类摘要如下:
1 | Closure { |
方法说明:
Closure::__construct用于禁止实例化的构造函数Closure::bind复制一个闭包,绑定指定的$this对象和类作用域Closure::bindTo复制当前闭包对象,绑定指定的$this对象和类作用域
Closure::bind 是 Closure::bindTo 的静态版本,其说明如下:
1 | public static Closure bind( |
参数说明:
$closure表示需要绑定的闭包对象$newthis表示需要绑定到闭包对象的对象,或者 NULL 创建未绑定的闭包$newscope表示想要绑定给闭包的类作用域,可以传入类名或类的实例,默认值是’static’,表示不改变。
1 | public Closure bindTo(object $newthis [, mixed $newscope = 'static'] ): Closure |
参数说明:
$newthis表示需要绑定到闭包对象的对象,或者 NULL 创建未绑定的闭包$newscope表示想要绑定给闭包的类作用域,可以传入类名或类的实例,默认值是’static’,表示不改变。