for

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

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

最初の式(式1)は、ループ開始時に無条件に 評価(実行)されます。

各繰り返しの開始時に、式2が評価されます。 その式の値がTRUEが場合、ループは継続され、括弧内の文が 実行されます。 値が FALSEの場合、ループの実行は終了します。

各繰り返しの後、式3が評価(実行)されます。

各式は、空とすることができます。式2を空にすることは、 無限実行ループを意味します。(PHP は、この状態を C のように暗黙の内に TRUEとみなします) for 論理式を使用するよりも条件付 break 文によりループを終了させたいと 考える傾向がある場合には、この機能は思ったほど便利ではないかもしれません。

次の例について考えてみましょう。全ての例は、1~10までの数を 表示します。

  1 
  2  /* 例 1 */
  3  
  4  for ($i = 1; $i <= 10; $i++) {
  5      print $i;
  6  }
  7  
  8  /* 例 2 */
  9  
 10  for ($i = 1;;$i++) {
 11      if ($i > 10) {
 12          break;
 13      }
 14      print $i;
 15  }
 16  
 17  /* 例 3 */
 18  
 19  $i = 1;
 20  for (;;) {
 21      if ($i > 10) {
 22          break;
 23      }
 24      print $i;
 25      $i++;
 26  }
 27  
 28  /* 例 4 */
 29  
 30  for ($i = 1; $i <= 10; print $i, $i++) ;
 31       

もちろん、最初の例(もしくは 4番目の例)が最善であると考えられます。 しかし、forループにおいて空の式を使用できると、多くの場合、 便利だということに気づかれるかと思います。

PHP は、forループ用に "コロン構文" もサポートします。

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

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