ホームページ >バックエンド開発 >PHPチュートリアル >PHP Foreach ループで参照変数を使用するとどうなりますか?

PHP Foreach ループで参照変数を使用するとどうなりますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-13 22:32:14927ブラウズ

What Happens When Using Reference Variables in a PHP Foreach Loop?

PHP Foreach の参照変数

指定されたコードでは、最初の foreach ループで参照変数が使用されているために問題が発生します。説明は次のとおりです:

$a = ['zero', 'one', 'two', 'three'];

foreach ($a as &$v) {
    // $v is a reference to the current array element
}

foreach ($a as $v) {
    echo $v . PHP_EOL;
}

PHP では、変数は通常変数または参照変数になります。通常の変数はデータの値を保持しますが、参照変数はデータの位置を指します。

最初のループでは、$v = &$a[0]; となります。したがって、$v は配列の最初の要素「ゼロ」への参照になります。つまり、$v への変更は $a[0] に反映され、その逆も同様です。

2 番目のループでは、$v = 'two' になります。 $v は参照変数であるため、この操作により、配列内の対応する要素 $a[3] も変更されます。

最後に、2 番目の foreach ループで各要素を反復すると、出力が表示されます。 :

  • 'zero' - 'two' (要素 0 はまだ 'zero' ですが、$a[3] は現在'two')
  • 'one' - 'two' (要素 1 は 'one' のままですが、$a[3] は 'two' のままです)
  • 'two' - 'two' (要素 2 は 'two' に更新され、$a[3] も 'two' です)
  • 'two' - 'two' (要素 3 はすでに 'two' であり、$a[3] は 'two' のままです)

これは、foreach ループで参照変数を使用することの影響を示しており、最初のループで更新された最後の値の繰り返しが発生します。ループします。

以上がPHP Foreach ループで参照変数を使用するとどうなりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。