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

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

little bottle
リリース: 2023-04-05 21:54:01
転載
3331 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート