サーバーを切り替えたり、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;
}
}
array_walk_recursiveParse error: syntax error, unexpected T_FUNCTION
行の無名関数が原因のようです。
この問題を回避するために、この関数を別の方法で記述するにはどうすればよいですか? また、PHP のアップグレード時にこの問題が発生するのはなぜですか?
ありがとう