ホームページ >バックエンド開発 >PHPチュートリアル >[PHP] foreach ループでの参照代入の問題

[PHP] foreach ループでの参照代入の問題

little bottle
little bottle転載
2019-04-17 13:20:313323ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。