是否可以将匿名函数作为参数传递并立即执行,从而传递函数的return
值?PHP:传递匿名函数作为参数
function myFunction(Array $data){
print_r($data);
}
myFunction(function(){
$data = array(
'fruit' => 'apple',
'vegetable' => 'broccoli',
'other' => 'canned soup');
return $data;
});
这会引发错误由于Array
型提示,抱怨的目的被传递。好的,如果我删除了类型提示,它当然会吐出Closure Object
,而不是我想要的结果。我知道我在技术上将Closure
的对象实例传递给myFunction
,但是,我已经确定我已经在其他地方看到了这一点。这可能吗?如果是这样,我做错了什么?
为了这个讨论,我不能修改我通过闭包的函数。
tl; dr:我如何传递一个匿名函数声明作为参数,导致返回值作为参数传递。
PS:如果不明确,期望的输出是:
Array
(
[fruit] => apple
[vegetable] => broccoli
[other] => canned soup
)
你可能已经看到了这一点在JavaScript作为'(函数(){})()',但PHP的功能没有那么灵活。 – deceze 2010-11-16 21:50:25