使用带有回调函数的array_filter删除空数组元素

Tot*_*oto 10 php

我正在尝试使用函数array_filter删除数组中的空元素.

当我使用这样的外部回调时:

function callback($a) { return !empty($a);}
$arr = array("abc",'','ghi');
$res = array_filter($arr, "callback");
Run Code Online (Sandbox Code Playgroud)

它按预期工作.

但是如果我像这样使用array_filter:

$arr = array("abc",'','ghi');
$res = array_filter($arr, function($a) { return !empty($a);});
Run Code Online (Sandbox Code Playgroud)

它失败并出现错误:

PHP Parse error:  syntax error, unexpected T_FUNCTION in test.php on line 2
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么 ?

Gum*_*mbo 15

您似乎正在使用不支持匿名函数的PHP版本(自PHP 5.3.0起可用).

但是array_filter如果你没有指定回调函数,它是否已经过滤了空值:

如果未callback提供,则将删除所有input等于FALSE的条目(请参阅转换为布尔值).