我有这个数组:
$people = array(
'kids' => 100,
'adults' => function() {
return 1000
}
);
如果我做print_r($people)
,我得到:
Array ([kids] => 100, [adults] => Closure Object() )
如何在相同的数组位置获得闭包对象的返回值,而不是闭包对象本身?
这在PHP中可能吗?
$myFunction = function() { return 1000; };
$people = array( 'kids' => 100, 'adults' => $myFunction());
如果你试着这样内联:
$people = array( 'kids' => 100, 'adults' => function() { return 1000; }());
您将得到一个解析错误:
PHP分析错误:语法错误,意外的"(",应为")"
如果你必须在一条线上完成,你可以使用call_user_func
:
$people = array(
'kids' => 100,
'adults' => call_user_func(function(){ return 1000; })
);