for ステートメント は、PHP (および複数の言語) の ループ 制御部分の最も基本的なステートメントであると言えます。for ステートメントの実行ルールと基本的な使用法についてはここでは説明しません。ステートメント部分についてはPHPマニュアルを参照してください。その構文は PHP マニュアルで次のように定義されています:
for (expr1; expr2; expr3)
statement
for ステートメントのいくつかの便利なバリエーションについて話しましょう。
1. 無限ループ
1つ目は、誰もが知っている無限ループ(デッドループとも呼ばれます)です。空の式 null は構文的に有効であるため、for ステートメントの 3 つの式を空のままにすることができます。これにより、ネストされた for ステートメントが継続的に実行されます。
<?php for (;;) { //放置需要不断执行的语句 } ?>無限ループを使用するタスクがいくつかありますが、ほとんどのプログラム タスク、特に PHP に関連するタスクでは、無限ループを使用するときにループを終了するための条件が追加されます。
<?php for (;;) { //如果是公元2199年,则跳出循环 if (date('Y') == '2199') { break; } } ?>2. 空の式を使用する 次のステップは、初期化ステートメント expr1 で null 構文を使用することです。expr1 を空白のままにする最も一般的な機能は、より複雑な初期化作業を完了することです。
<?php if (isset($i)) { unset($i); if ((int) date('') < 2008) { $i = 0; } else { $i = 1; } } else { $i =3; } for (;$i < 10;$i++) { echo $i; } ?>同様に、反復式 expr3 を空白のままにすることもできます。これは、さまざまな条件に応じてさまざまな反復を呼び出すなど、より複雑な反復を記述するためにも使用できます。 for ステートメント内の条件ステートメント expr2 を空白のままにすると、前述の無限ループになります。もちろん、ループから抜け出すタイミングを決定するために、より複雑な条件を追加することもできますが、ここでは繰り返しません。 3. 複数のループ 複数の
<?php for ($i = 0, $j = 10;$i <= 10;$i++, $j--) { echo "$i + $j = 10\r\n"; } ?>上記のコードは次を出力します:
0 + 10 = 10 1 + 9 = 10 2 + 8 = 10 3 + 7 = 10 4 + 6 = 10 5 + 5 = 10 6 + 4 = 10 7 + 3 = 10 8 + 2 = 10 9 + 1 = 10 10 + 0 = 104. より複雑な式 for ステートメントの 3 つの式がより複雑に記述されている場合、それらを使用してアルゴリズムを最適化できます。ループ本体のない for ステートメントを使用して、一部のタスクを完了することもできます。たとえば、累積または階乗を計算する場合:
<?php //计算1-5的累加结果,斌值到$j or ($i = 1,$j = 0; $i <= 5;$j += $i++); echo $j; //计算1-5的阶乘结果,斌值到$j for ($i = 1,$j = 1; $i <= 5;$j *= $i++); echo $j; ?>f
以上がphpのforループの拡張使用例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。