Удалите пустые элементы массива с помощью array_filter с функцией обратного вызова

Я пытаюсь удалить пустые элементы в массиве с помощью функции 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 

Что я делаю не так ?

Related of "Удалите пустые элементы массива с помощью array_filter с функцией обратного вызова"

Кажется, что вы используете версию PHP, которая не поддерживает анонимные функции (доступные с PHP 5.3.0).

Но array_filter уже фильтрует пустые значения, если вы не указали функцию обратного вызова:

Если callback не предоставляется, все записи input равные FALSE (см. Преобразование в логическое ), будут удалены.

Он хорошо работает с PHP5. Проверьте свою версию PHP и при необходимости обновите.