Следующий кода внезапно нарушение, когда я переключился сервера/обновления с PHP 5.3 до 5.4:Anonymous функция разрывные при обновлении PHP
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?
Благодаря
выглядит как array_walk_recursive функция все еще существует в php5.4 http://php.net/manual/en/function.array-walk-recursive.php. нет смысла прерывать его. Но, как я вижу, вы добавили анонимную функцию. 'function ($ v, $ k) ....' Я думаю, что ему нужно изменить – Exception
@Exception, это то, что я не делаю Понимаю. Тот же код отлично работает на сервере 5.3 и разбивается на 5.4. На данный момент я рад за любое обходное решение, чтобы заставить его работать – John
Я получил этот фрагмент кода из где-то еще давно, и сам не знаком с анонимными функциями, поэтому я не могу найти альтернативный метод чтобы получить тот же результат (если он существует) – John