之前就在看Composer那块代码的时候看到Closure::bind
的使用,一直没有太明白这个用法起到了什么作用。之前也有搜索这个方法,看到的文章都不太能明白。今天又翻阅了大量搜索结果看到一篇文章大概了解了
Closure::bind
public static Closure::bind ( Closure
$closure
, object$newthis
[, mixed$newscope
= 'static' ] ) : Closure
这个方法是将闭包函数内部$this
的作用域指向所传对象,在闭包函数内部通过$this
可以访问到对象内部的方法和属性。而要访问对象内部的私有方法的话还需要传第三个参数,值应该是类名(类名::class
)或者实例化的对象(new 类名()
)。
bindTo
public Closure::bindTo ( object
$newthis
[, mixed$newscope
= 'static' ] ) : Closure
这个方法功能类似于bind,但是它不是Closure类的静态方法。而是所有闭包函数的一个方法。参数比bind少了第一个,后两个一样。
参考文章 PHP Closure创建匿名函数
网友评论