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()
と組み合わせて使用します。 例については、これらの関数に関するドキュメントを参照下さい。