ホームページ >バックエンド開発 >PHPチュートリアル >PHP の foreach() 関数は配列に限定されています use_PHP チュートリアル
これは、配列を反復処理するための単なる便利な方法です。 PHP の foreach() 関数は配列でのみ使用でき、他のデータ型または初期化されていない変数で使用しようとするとエラーが発生します。 2 つの構文があり、2 番目の構文は、最初の構文の小規模ではありますが便利な拡張です。
foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
最初の形式は、指定された array_expression 配列を反復処理します。ループを通過するたびに、現在のセルの値が $value に割り当てられ、配列内のポインターが 1 ステップ前に移動します (そのため、次のループで次のセルが取得されます)。
2 番目の形式でも同じことを行いますが、現在のセルのキー名が各ループの変数 $key にも割り当てられる点が異なります。
PHP 5 以降、オブジェクトをトラバースすることも可能です。
注: PHP の foreach() 関数の実行が開始されると、配列内のポインターは自動的に最初のユニットを指します。これは、foreach ループの前にreset()を呼び出す必要がないことを意味します。
注: 配列が参照されない限り、PHP の foreach() 関数は配列自体ではなく、指定された配列のコピーに対して動作します。したがって、配列ポインタは each() 構造によって変更されず、返された配列セルを変更しても元の配列には影響しません。ただし、元の配列の内部ポインタは、配列の処理中に前方に移動します。 foreach ループが最後まで実行されると仮定すると、元の配列の内部ポインターは配列の末尾を指すことになります。
PHP 5 以降では、$value の前に & を追加することで配列のセルを簡単に変更できます。このメソッドは、値をコピーするのではなく、参照によって割り当てます。
<ol class="dp-xml"><li class="alt"><span><span class="tag"><</span><span> ?php </span></span></li><li><span>$</span><span class="attribute">arr</span><span> = </span><span class="attribute-value">array</span><span>(1, 2, 3, 4); </span></li><li class="alt"><span>foreach ($arr as &$value) { </span></li><li><span>$</span><span class="attribute">value</span><span> = $value * 2; </span></li><li class="alt"><span>} </span></li><li><span>// $arr is now array(2, 4, 6, 8) </span></li><li class="alt"><span class="tag">?></span><span> </span></span></li></ol>
PHP の foreach() 関数のこのメソッドは、走査される配列が参照できる場合 (たとえば、変数である場合) にのみ使用できます。