0

サーバーを切り替えたり、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 のアップグレード時にこの問題が発生するのはなぜですか?

ありがとう

4

1 に答える 1

1

私が知る限り、あなたは現在php 5.2を使用しています。

コードでphpinfo()を実行すると<? echo phpinfo(): ?>、バージョンが検出されます。php 5.2 - 5.5 を使用した私のテストから、これはラムダ関数が存在する前の php 5.2 でのみ発生します。

もちろん、あなたは私たちのコメントからこれをすでに知っていますが、これは将来の訪問者のためのものです.

于 2015-10-03T04:00:59.727 に答える