缘由
《PHP Reactive Programming》中有一个例子:
其中对$disposable对象中传递了一个closure,use的对象是带引用符号的$disposable
,我尝试把引用符号去掉,然而程序报错PHP Notice: Undefined variable: disposable
。
突然想起来之前做的一个形成cms菜单栏的方法,要求实现一个closure自身的递归,当时查到的解决方案就是使用&
符号进行调用。
解释
凡是关于PHP的东西,一般都可以从文档上找到,即使文档中没有,那么下面的user notes里面也会存在。
匿名函数下面的Hayley Watson评论中就是针对这种情况举的一个例子,例子用Fibonacci数列进行示意。
php的匿名函数中,如果use
一个基本数据类型(非对象)的时候,传递的是当时此数据的快照;而use
一个对象的时候,与函数参数中传递该对象相同,都是引用。
这一点可以参照mail at mkharitonov dot net里面的注释。