я хочу написать встроенную функцию в 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];
Других решений пока нет …