for ループは、PHPで最も複雑なループです。 for は、Cのforループと同様に動作します。 forループの構文は、次のようになります。
最初の式(式1)は、ループ開始時に無条件に 評価(実行)されます。
各繰り返しの開始時に、式2が評価されます。 その式の値がTRUEが場合、ループは継続され、括弧 内の文が実行されます。値がFALSEの場合、ループの 実行は終了します。
各繰り返しの後、式3が評価(実行)されます。
各式は、空とすることができます。式2を空 にすることは、無限実行ループを意味します。(PHPは、この状態をC言語 のように暗黙の内に TRUEとみなします) for論理式を使用するよりも条件付 break 文によりループを終了させる方が好ましい場合には、この機能は思った ほど便利ではないかもしれません。
次の例について考えてみましょう。以下の例は全て1~10までの数を表示します。
/* 例 1 */ for ($i = 1; $i <= 10; $i++) { print $i; } /* 例 2 */ for ($i = 1;;$i++) { if ($i > 10) { break; } print $i; } /* 例 3 */ $i = 1; for (;;) { if ($i < 10) { break; } print $i; $i++; } /* 例 4 */ for ($i = 1; $i <= 10; print $i, $i++) ; |
もちろん、最初の例(もしくは 4番目の例)が最善であると考えられます。 しかし、forループにおいて空の式を使用できると、 多くの場合、便利だということに気づかれるかと思います。
PHPは、forループ用に"コロン構文"もサポートします。
他の言語には、配列やハッシュを連続的に処理するために foreach文があります。PHP 3にはこうした 構文はありません。PHP 4はこれをサポートしています。 (foreachを参照下さい) PHP 3 では、同様の効果を得るために while文をlist()およびeach() と組み合わせて使用します。 例については、これらの関数に関するドキュメントを参照下さい。