Нарушение анонимной функции при обновлении PHP

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

Спасибо

1 ответ

Решение

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

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

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

Другие вопросы по тегам