foreach($arr as &$value)
1. 参照代入記号 & は、ループするたびに現在の要素をアドレスに変換します。$value 変数は、対応する要素のアドレスです。ループでは、$value は最後の要素を指すアドレスです。
2 次回ループしてこのメソッド foreach($arr as $value) を使用すると、問題が発生します。foreach は各要素を後続の要素に割り当てます。 $value 変数
3. したがって、ロジックは次のようになります。各要素を元の配列の最後の要素に変更すると、最後のループは常に前のループの結果になります。参照渡し、この形式を使用します $arr[$key]元の配列を変更するか、次のループ中に変数名を変更します
$nums=array(1,2,3); foreach($nums as &$v){ var_dump($v); } /* int(1) int(2) int(3) */ var_dump($nums); /* array(3) { [0]=> int(1) [1]=> int(2) [2]=> &int(3) } */ foreach($nums as $v){ var_dump($v); } /* int(1) int(2) int(2) */
PHP ビデオ チュートリアル ]
以上が[PHP] foreach ループでの参照代入の問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。