更新:从 PHP7 开始,现在可以使用以下语法使用匿名函数解引用:
$array[] = [
'new' => (function()
{
...
return mt_rand();
})(),
'or' => getClosure()()
]
原帖:最近在试验一些东西,想知道有没有办法使用匿名函数的返回值
假设我有一个 for 循环,它创建了一个数组,该数组的每个值都必须有一个数据库调用,我想做的是:
for($i = 0; $i != 10; $i++)
{
$array[] = [
'new' => function(){
// some proccesing here maybe
// lets use mt_rand for this example.
return mt_rand();
},
'old' => function(){
return mt_rand();
}
];
}
或许
echo function(){
// again, we'll just use mt_rand
return mt_rand();
};
这些都返回一个closure
类。对于上面的示例,是否有实际将它们的返回值传递回数组或回显?
更新:我已经确定这是不可能的,所以可以在这里找到功能请求:http ://bugs.php.net/bug.php?id=64608