是否可以将匿名函数作为参数传递,并让它立即执行,从而传递函数的return
值?
function myFunction(Array $data){
print_r($data);
}
myFunction(function(){
$data = array(
'fruit' => 'apple',
'vegetable' => 'broccoli',
'other' => 'canned soup');
return $data;
});
由于类型提示,这会引发错误Array
,抱怨传递了一个对象。好吧,如果我删除类型提示,它当然会吐出Closure Object
,而不是我想要的结果。我知道我在技术上传递了一个Closure
to的对象实例myFunction
,但是,我几乎可以肯定我已经在其他地方看到了这一点。这可能吗?如果是这样,我做错了什么?
为了便于讨论,我无法修改传递闭包的函数。
tl; dr:如何将匿名函数声明作为参数传递,从而导致返回值作为参数传递。
PS:如果不清楚,期望的输出是:
Array
(
[fruit] => apple
[vegetable] => broccoli
[other] => canned soup
)