Я пытаюсь удалить пустые элементы в массиве с помощью функции array_filter.
Когда я использую внешний обратный вызов следующим образом:
function callback($a) { return !empty($a);} $arr = array("abc",'','ghi'); $res = array_filter($arr, "callback");
он работает так, как ожидалось.
Но если я использую array_filter следующим образом:
$arr = array("abc",'','ghi'); $res = array_filter($arr, function($a) { return !empty($a);});
Ошибка с ошибкой:
PHP Parse error: syntax error, unexpected T_FUNCTION in test.php on line 2
Что я делаю не так ?
Кажется, что вы используете версию PHP, которая не поддерживает анонимные функции (доступные с PHP 5.3.0).
Но array_filter
уже фильтрует пустые значения, если вы не указали функцию обратного вызова:
Если
callback
не предоставляется, все записиinput
равные FALSE (см. Преобразование в логическое ), будут удалены.
Он хорошо работает с PHP5. Проверьте свою версию PHP и при необходимости обновите.