ホームページ  >  記事  >  バックエンド開発  >  PHP の foreach 配列に関するいくつかの問題 ループ_PHP チュートリアル

PHP の foreach 配列に関するいくつかの問題 ループ_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:33:38824ブラウズ

PHP の foreach() 構文構造は、操作または出力配列の走査に使用されます。foreach() は、配列またはオブジェクトの走査にのみ使用できます。他のデータ型または初期化されていない変数に使用しようとすると、エラーが発生します。

文法:

リーリー

上記の構文では、各ループは現在のユニットの値を $value に代入し、配列内のポインターが 1 ステップ先に進みます。 2 番目の構文形式では、現在のユニットのキー名も各ループの変数 $key に割り当てられます。

通常、for ループは配列を反復処理するために使用されます。例:

リーリー

ただし、手動コードで大規模な配列を操作する場合、foreach ループを使用すると必要なコードは少なくなり、上記のコードは次のように記述できます。 リーリー

foreach の使用に関するいくつかの問題について詳しく説明しましょう。

1. foreach での参照の使用。

通常の状況では、foreach の $arr と $value($arr as $value) はコピーであり、外部要因の影響を受けません。 リーリー

しかし、$arr が参照である場合、状況は異なります。問題を説明するためにコードを使用します。 リーリー

これは、ループで使用される $arr が元のデータをコピーするのではなく、直接ポイントしているためです。

$value が参照であり、$arr が参照ではない場合、結果は同じになります。$value はコピーではなく元のデータを指します。

リーリー

別の特殊な状況があります。つまり、$arr がグローバル変数として定義されている場合、$arr も参照になります。 リーリー

2. 配列を 2 回ループする場合は、このように記述してはなりません

リーリー

これにより、2 番目のループの結果が不正確になります (おそらく、PHP のバグです)。代わりに以下を使用できます:

リーリー

3. foreach が未定義にならないようにするには、次のように foreach を書いてみます

れーれー

http://www.bkjia.com/PHPjc/752450.html

www.bkjia.com

http://www.bkjia.com/PHPjc/752450.html技術記事 PHP の foreach() 構文構造は、操作または出力配列を走査するために使用されます。 foreach() は、他のデータ型または初期化されていない変数で使用しようとする場合に、配列またはオブジェクトを走査するためにのみ使用できます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。