Сбой анонимной функции при обновлении переполнения стека

Следующий код неожиданно ломается, когда я переключаю серверы / обновляю с 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?

Спасибо

0

Решение

Вы в настоящее время используете php 5.2 из того, что я могу сказать.

Запуск phpinfo () с кодом <? echo phpinfo(): ?> обнаружит версию. Из моих тестов, использующих php 5.2 — 5.5, это происходит только в php 5.2 до появления лямбда-функций.

Конечно, вы уже знаете это из наших комментариев, это для будущих посетителей.

1

Другие решения

Других решений пока нет …