Следующий код неожиданно ломается, когда я переключаю серверы / обновляю с 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 из того, что я могу сказать.
Запуск phpinfo () с кодом <? echo phpinfo(): ?>
обнаружит версию. Из моих тестов, использующих php 5.2 — 5.5, это происходит только в php 5.2 до появления лямбда-функций.
Конечно, вы уже знаете это из наших комментариев, это для будущих посетителей.
Других решений пока нет …