ホームページ  >  記事  >  バックエンド開発  >  PHP では foreach ループ後に配列参照の問題が残る

PHP では foreach ループ後に配列参照の問題が残る

不言
不言オリジナル
2018-04-13 14:23:532186ブラウズ

この記事では、foreach ループの後に PHP が残した配列の参照問題を紹介します。必要な友達はそれを見てください


結果:

説明:
1. foreach はブロックレベルのフィールドではなく、配列の参照が終了し、$k はメモリを解放しません

2 最初の参照サイクルが終了すると、$a はメモリを指します。配列の最後の要素 4

3. 2 回目のループ開始時 (この時点で、$a はすでに参照である最後の要素を指しています)

配列内の変更は 4 回行われます。

1->

[1

,2,3,4]

2->[1,

2,3,4]

3->[1,2,

3,3

] 3回目の値は最後の要素3を指しますが、その値は最後のループの最後の要素を指すグローバル参照なので、value=3の場合、最後の要素の値も3に変更されます

4 -> [1,2,3,3]

注:

1. foreach の実装原理には、


2.& の foreach ループが終了します。最後の要素を参照してください

回避方法:

&foreach ループを使用した後、設定を解除します ($ a)


関連推奨事項:

PHP での foreach 参照のアドレスの受け渡し

foreach 使用後の例外処理PHP での参照と参照

foreach と通常の for ループの効率間の分析

以上がPHP では foreach ループ後に配列参照の問題が残るの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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