0

当我从 PHP 5.3 切换服务器/升级到 5.4 时,以下代码突然中断:

function arrayValRecursive($key, array $arr, $string=false){
    $val = array();
    array_walk_recursive($arr, function($v, $k) use($key, &$val){
        if($k == $key) array_push($val, $v);
    });
    if($string==true){
      return count($val) > 1 ? $val : array_pop($val);
    }
    else {
      return $val;
    }
}

我收到一个Parse error: syntax error, unexpected T_FUNCTION错误,这似乎是由于 array_walk_recursive 行中的匿名函数。

我怎样才能以不同的方式编写这个函数来避免这个问题,为什么在升级 PHP 时会发生这种情况?

谢谢

4

1 回答 1

1

据我所知,您目前正在使用 php 5.2。

使用代码运行phpinfo()<? echo phpinfo(): ?>将检测版本。从我使用 php 5.2 - 5.5 的测试来看,这只发生在 lambda 函数存在之前的 php 5.2 中。

当然,您已经从我们的评论中知道了这一点,这是为未来的访问者准备的。

于 2015-10-03T04:00:59.727 回答