最近在看一個框架的源代碼。
遇到這么一個問題:一個數組中,存有幾個匿名函數。
$arr=array(
????function(){echo?'111';},
????function(){echo?'222'}
)
在調用的時候,按照自己的思路,自然想到:$arr[0]();?//調用了第一個匿名函數。
在框架中,看他們寫的代碼是:
先創建一個方法反射對象:$reflect=new?ReflectFunction($arr[0]);
然后去執行:$reflect->invoke();??//?第一個匿名函數執行,輸出111
也查了一下手冊,關于反射的用法。
但是還是搞不懂,為什么不直接調用,這多省事?。?直接調用,和使用ReflectFunction類,有什么區別?最起碼在最后執行結果是一樣的。
添加回答
舉報
0/150
提交
取消