在PHP中,闭包非常有用。但是我可以使用闭包来设置数组元素吗?
$configs = [
"y" => "1",
"x" => function() { return "xxx"; },
];
echo $configs["y"];
echo $configs["x"]; // error
给予
Recoverable fatal error: Object of class Closure could not
be converted to string on line 6 (last line)
是否有机会转换闭包或闭包用于数组初始化的任何东西?
在MacOSX上使用PHP 7.1.4
答案 0 :(得分:1)
您需要一个 IIFE (立即调用函数表达式):
$configs = [
'y' => '1',
'x' => (function () { return 'xxx'; })()
];
echo $configs['x'];
答案 1 :(得分:0)
我将函数分开定义:
function test(){
echo "Hello";
}
然后将结果分配给变量:
$a = test();
echo $a; //Returns "Hello"