• ベストアンサー

PHP5.4対応/array_walk配列参照渡し

・下記と同等機能をPHP5.4で書くにはどうすれば良いでしょうか? array_walk($ary,"userfunc",&$hoge);

質問者が選んだベストアンサー

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

「下記と同等機能」という意味がわかりません。呼び出し側で&を付与することはないので array_walk($ary,"userfunc",&$hoge); ではなく array_walk($ary,"userfunc",$hoge); と書いて function userfunc($val, $key, &$arg) { と受けるのでは? それともarray_walkが終わって時点でもuserfuncで処理した最終結果の値を使いたいということですかね。そうなるとuserfunc側でglobal宣言するか(引数としては渡さない)処理した結果を別のglobal変数に代入してそれを使うしかないです。array_walkの定義として出来ないものは出来ません。 http://www.php.net/manual/ja/function.array-walk.php array_walk($ary,"userfunc"); function userfunc($val, $key) { global $hoge; (蛇足) 「PHP5.4で」というのはもっとわかりませんね。この記述が可能なバージョンがあるということでしょうか。

re97
質問者

お礼

回答ありがとうございました。 >function userfunc($val, $key, &$arg) { ・参考になりました >array_walkが終わって時点でもuserfuncで処理した最終結果の値を使いたいということですかね ・はい。こちらも疑問の一つでした >そうなるとuserfunc側でglobal宣言するか(引数としては渡さない)処理した結果を別のglobal変数に代入してそれを使うしかないです ・……処理結果を返せないんですね ・初めて知りました >array_walkの定義として出来ないものは出来ません ・参考になりました ・諦めて他を使うことにします >「PHP5.4で」というのはもっとわかりませんね。この記述が可能なバージョンがあるということでしょうか ・PHP5.4で参照の挙動が変わったみたいなので、バージョンアップする際のセオリーみたいなのがあるかな、と思い質問しましたー

関連するQ&A

専門家に質問してみよう