代码之家  ›  专栏  ›  技术社区  ›  Toto

使用带有回调函数的数组过滤器移除空数组元素

php
  •  10
  • Toto  · 技术社区  · 14 年前

    我试图用函数array\u filter删除数组中的空元素。

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

    它按预期工作。

    $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
    

    我做错什么了?

    2 回复  |  直到 10 年前
        1
  •  15
  •   Gumbo    14 年前

    似乎您使用的PHP版本不支持 anonymous functions (从PHP5.3.0开始提供)。

    但是 array_filter 如果不指定回调函数,则已筛选空值:

    callback input 等于 错误的 (见 converting to boolean )将被删除。

        2
  •  0
  •   Adrian Toman Duncan_m    12 年前

    它与PHP5配合得很好。检查您的PHP版本,必要时升级。