for

for ループは、PHP で最も複雑なループです。 for は、C の for ループと同様に動作します。 forループの構文は、次のようになります。


for (式1; 式2; 式3) 文
      

最初の式(式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ループ用に "コロン構文" もサポートします。


 for (式1; 式2; 式3): 文; ...; endfor;
      

他の言語には、配列やハッシュを連続的に処理するために foreach文があります。PHP3 にはこうした 構文はありません。PHP4 はこれをサポートしています。 (foreachを参照下さい) PHP3 では、同様の効果を得るために while文を list および each と組み合わせて使用します。 例については、これらの関数のドキュメントを参照下さい。