Avi*_*ida 6 php closures class
我试图了解关闭类,在手册中,所有在手册链接,
Closure :: __ construct - 不允许实例化的构造函数.如果我理解正确,这个类的唯一实例是匿名函数变量赋值.
但我不明白几行:
Closure :: bind - 使用特定绑定对象和类作用域复制闭包.
Closure :: bindTo - 使用新的绑定对象和类作用域复制闭包.
手册中的最后一句我不理解这句话:
除了这里列出的方法,这个类还有一个__invoke方法.这是为了与实现调用魔术的其他类保持一致,因为此方法不用于调用函数.
如果可以请一些人试着向我解释一下,我会非常感激,祝你有愉快的一天.
它指的是召唤魔法.
正如我的理解,对于包含__invoke其实例的任何类,可以调用它,就好像它是一个函数一样.这样的Closure::__invoke行为.
即,当$foo是类Closure(匿名函数)时,调用$foo($bar)将调用$foo->__invoke(bar)(虽然该__invoke成员不是要直接调用,这只是为了说明它是如何工作的).
定义匿名函数时,执行以下操作:
$greet = function($name)
{
printf("Hello %s\r\n", $name);
};
Run Code Online (Sandbox Code Playgroud)
现在,$greet是上课了Closure.并且$greet->__invoke有点等于function($name){ printf("Hello %s\r\n", $name); }
请记住,这Closure::__invoke是一种魔术方法.
| 归档时间: |
|
| 查看次数: |
2745 次 |
| 最近记录: |