升级时匿名功能中断 PHP
Anonymous function breaking when upgrading PHP
当我将 servers/upgrading 从 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?
谢谢
据我所知,您目前使用的是 php 5.2。
运行 带有代码 <? echo phpinfo(): ?>
的 phpinfo() 将检测版本。从我使用 php 5.2 - 5.5 的测试来看,这只发生在 php 5.2 中,在 lambda 函数存在之前。
当然你已经从我们的评论中知道了这一点,这是为未来的访客准备的。
当我将 servers/upgrading 从 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?
谢谢
据我所知,您目前使用的是 php 5.2。
运行 带有代码 <? echo phpinfo(): ?>
的 phpinfo() 将检测版本。从我使用 php 5.2 - 5.5 的测试来看,这只发生在 php 5.2 中,在 lambda 函数存在之前。
当然你已经从我们的评论中知道了这一点,这是为未来的访客准备的。