PHP:将匿名函数作为参数传递
2022-08-31 00:46:52
是否可以将匿名函数作为参数传递,并立即执行,从而传递函数的值?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
myFunction
为了便于讨论,我无法修改要将闭包传递给的函数。
tl;dr:如何将匿名函数声明作为参数传递,从而导致返回值作为参数传递。
PS:如果不清楚,所需的输出是:
Array
(
[fruit] => apple
[vegetable] => broccoli
[other] => canned soup
)