Я пытаюсь заменить устаревшую «create_function» в CMS. Я уже нашел много ответов на этот топи c. Тем не менее, патч, который я использовал, привел к еще большему затруднению, и я не очень уверен в работе над этим уровнем функций PHP. Поэтому я был бы очень рад, если бы кто-то мог помочь мне здесь.
Я изменил
$list->setColumnFormat('active', 'custom', create_function(
'$params',
'global $I18N;
$list = $params["list"];
return $list->getValue("active") == 1 ? $I18N->msg("yes") : $I18N->msg("no");'
));
на
$list->setColumnFormat('active', 'custom', function($params) {
global $I18N;
$list = $params["list"];
return $list->getValue("active") == 1 ? $I18N->msg("yes") : $I18N->msg("no");
});
Однако тогда - вместо просто " сообщение «устарело» - я получаю
Исправимая фатальная ошибка: объект класса Closure не может быть преобразован в строку в [имя файла] в строке 155
строка 155:
trigger_error('rexCallFunc: Using of an unexpected function var "'.$function.'"!');
var_dump ($ function) дает:
object(Closure)#16 (1) { ["parameter"]=> array(1) { ["$params"]=> string(10) "" } }
Если я закомментирую эту строку 155, я также получу:
Предупреждение: call_user_fun c () ожидает, что параметр 1 будет действительным обратным вызовом, функция '' не найдена или недопустимое имя функции в [то же имя файла] в строке 163
строка 163:
return call_user_func($func, $params);
var_dump ($ fun c) дает:
string(0) ""
Кто-нибудь знает, что это такое и как его можно решить?