gpt4 book ai didi

PHP:将匿名函数作为参数传递

转载 作者:行者123 更新时间:2023-12-04 12:41:59 25 4
gpt4 key购买 nike

是否可以将匿名函数作为参数传递,并让它立即执行,从而传递函数的 return值(value)?

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
)

最佳答案

你不能。你必须先调用它。由于 PHP 尚不支持闭包解除引用,因此您必须先将其存储在变量中:

$f = function(){
$data = array(
'fruit' => 'apple',
'vegetable' => 'broccoli',
'other' => 'canned soup');
return $data;
};
myfunction($f());

关于PHP:将匿名函数作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4199307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com