for ループは、PHPで最も複雑なループです。 for は、Cのforループと同様に動作します。 forループの構文は、次のようになります。
for (式1; 式2; 式3) 文
最初の式(式1)は、ループ開始時に無条件に 評価(実行)されます。
各繰り返しの開始時に、式2が評価されます。 その式の値がTRUEが場合、ループは継続され、括弧 内の文が実行されます。値がFALSEの場合、ループの 実行は終了します。
各繰り返しの後、式3が評価(実行)されます。
各式は空にすることもできますし、複数の式をカンマで区切って指定することもできます。 式2 でカンマ区切りの式を使用すると、 すべての式を評価します。しかし、結果として取得するのは最後の式の結果となります。 式2 を空にすると、無限実行ループになります (PHP は、この状態を C 言語のように暗黙の内に TRUE とみなします)。 for論理式を使用するよりも条件付 break 文によりループを終了させる方が好ましい場合には、この機能は思った ほど便利ではないかもしれません。
次の例について考えてみましょう。以下の例はすべて 1 から 10 までの数を表示します。
/* 例 1 */
for ($i = 1; $i <= 10; $i++) {
echo $i;
}
/* 例 2 */
for ($i = 1;;$i++) {
if ($i > 10) {
break;
}
echo $i;
}
/* 例 3 */
$i = 1;
for (;;) {
if ($i > 10) {
break;
}
echo $i;
$i++;
}
/* 例 4 */
for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
もちろん、最初の例(もしくは 4番目の例)が最善であると考えられます。 しかし、forループにおいて空の式を使用できると、 多くの場合、便利だということに気づかれるかと思います。
PHPは、forループ用に"コロン構文"もサポートします。
for (式1; 式2; 式3): 文; ...; endfor;