注: 配列が参照されない限り、foreach は配列自体ではなく配列のコピーを操作し、走査プロセス中に配列要素を変更してもコピーには影響しません (コピーを走査する前に配列が変更されるように感じられます)が作成され、走査中に配列のコピーが操作されます)。 foreach は、配列ポインターにいくつかの副作用をもたらします。リセットされない限り、foreach ループ中またはループ後に配列ポインターの値に依存しないでください。 foreachであれば、キーに応じて$arrayの要素を直接取り出して、さまざまな判定や代入操作を行うことができます。
foreach 構文構造は、配列を走査する簡単な方法を提供します。 foreach は配列とオブジェクトにのみ適用できます。他のデータ型の変数、または初期化されていない変数に適用しようとすると、エラー メッセージが表示されます。 2 つの構文があります:
リーリー最初の形式は、指定された array_expression 配列を反復処理します。ループを通過するたびに、現在のセルの値が $value に割り当てられ (コピーが作成され)、配列内のポインターが 1 ステップ前に移動します (そのため、次のループで次のセルが取得されます)。
2 番目の形式でも同じことを行いますが、ループを通過するたびに現在のセルのキー名も変数 $key に割り当てられます (コピーの作成)。
注:
foreach の実行が開始されると、配列内のポインターは自動的に最初のユニットを指します。これは、foreach ループの前にreset()を呼び出す必要がないことを意味します。
foreach は内部配列ポインターに依存しているため、ループ内でその値を変更すると予期しない動作が発生する可能性があります。
$value の前に & を追加することで、配列の要素を簡単に変更できます。このメソッドは、値をコピーするのではなく、参照によって割り当てます。
リーリー注: 配列の最後の要素の $value 参照は、foreach ループの後も残ります。 unset() を使用して破棄することをお勧めします。