我知道我可以做到这一点:
$myFunc = function () { return 42; };
$val = $myFunc();
但我想跳过$myFunc
,做这样的事情:
$val = () { return 42; };
这可能吗?
当然,我的实际功能更为复杂。它看起来像这样:
function () use ($value) {
$a = $value['foo'] ?: '';
$d = ['FOO' => 'F', 'BAR' => 'B', '' => ''];
return $d[$a];
}
我想在字典里使用它,比如:
$foobar = [
'something' = function () use $(value) { ...
我发现什么了吗?还是我使用了完全错误的方法?我不喜欢的替代方案是:
- 将这些函数声明为正则函数
- 先计算字典前的值,然后再赋值
当然,您可以将函数表达式封装在括号中,然后通过附加()
:立即调用它
$val = (function () { return 42; })();