我想在php中编写一个内联函数,如下
例如:
$c = getCountry();
$b = getZones();
$a = [
'x' => function() use ($c, $b)
{
if ( isset($c[0]) )
return getZonesByCountryId($c[0]['id']);
else
return $b;
}
];
我收到以下错误:"Closure类的对象无法转换为字符串"我像上面那样在.net中编写内联函数。请帮帮我!!!
'x'
的值将是函数;匿名函数本身将被分配给'x'
,而不是其返回值。要分配其返回值,您需要实际执行以下函数:
$a = ['x' => call_user_func(function() use ($c, $b) {
if (isset($c[0])) {
return getZonesByCountryId($c[0]['id']);
} else {
return $b;
}
})];
然而,在这种特殊的情况下,使用这样一个复杂的解决方案是完全没有意义的,因为这会很好:
$a = ['x' => isset($c[0]) ? getZonesByCountryId($c[0]['id']) : $b];