如何直接使用匿名函数来赋值



我知道我可以做到这一点:

$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) { ...

我发现什么了吗?还是我使用了完全错误的方法?我不喜欢的替代方案是:

  1. 将这些函数声明为正则函数
  2. 先计算字典前的值,然后再赋值

当然,您可以将函数表达式封装在括号中,然后通过附加():立即调用它

$val = (function () { return 42; })();

相关内容

  • 没有找到相关文章

最新更新