(PHP 3ではなく)PHP 4には、Perlや他の言語とよく似た foreach構文があります。これにより 配列要素に関する反復処理が容易になります。この構造には、 2種類の構文があります。2番目の構文はあまり知られていませんが、 最初の構文の便利な拡張になっています。
最初の形式は、array_expressionで指定した配列に 関してループ処理を行います。各ループにおいて現在の要素の値が $valueに代入され、内部配列ポインタが一つ前に 進められます。(よって、次のループでは次の要素を見ることになります。)
2番目の形式も同様ですが、各ループで現在の要素のキーが変数 $keyに代入されるところが異なります。
注意: foreachの実行開始時に内部配列ポインタは、 配列の先頭要素を指すように自動的にリセットされます。 このため、foreachループの前に reset()をコールする必要はありません。
注意: foreachは、指定した配列自体に対してではなく、 そのコピーに対して処理を行うことに注意して下さい。このため、 each() 文のように配列のポインタ位置が変更され ることはなく、返される配列要素への変更は、元の配列には反映されま せん。
注意: foreach は、'@' によりエラーメッセージ出力を抑 制する機能をサポートしていません。
既にご存知かと思いますが、以下の文は機能的に等価です。
<?php |
reset ($arr); |
使用法を示すためにその他の例を示します。
/* foreach の例 1: 値のみ */ |