for ステートメントは、PHP (および多くの言語) のループ制御部分で最も基本的なステートメントであると言えます。for ステートメントの実行規則と基本的な使用法については、ここでは説明しません。for ステートメントのセクションを参照してください。 PHPマニュアルの。その構文は、PHP マニュアルで次のように定義されています:
for (expr1; expr2; expr3)
ステートメント
のいくつかの便利なバリエーションについて説明しましょう。
1. 無限ループ
まず、誰もが知っている無限ループ(「デッドループ」とも呼ばれます)です。空の式 null は構文的に有効であるため、for ステートメントの 3 つの式を空のままにすることができます。これにより、ネストされた for ステートメントが継続的に実行されます。
<?php
のために (;;) {
// 継続的に実行する必要があるステートメントを配置します
}
?>
タスクによっては無限ループを使用するものもありますが、ほとんどのプログラム タスク、特に PHP が関係する可能性のあるフィールドでは、無限ループを使用するときにループを終了するための条件が追加されます。
<?php
のために (;;) {
//西暦 2199 年の場合、ループを抜け出す if (date('Y') == '2199') {
壊す;
}
}
?>
2. 空の式を使用する
次に、初期化ステートメント expr1 での null 構文の使用について説明します。expr1 を空白のままにする最も一般的な機能は、より複雑な初期化作業を完了することです。
<?php
if (isset($i)) {
設定を解除($i);
if ((int) date('') < 2008) {
$i = 0;
} それ以外 {
$i = 1;
}
} それ以外 {
$i =3;
}
for (;$i < 10;$i++) {
$i をエコーします。
}
?>
同様に、反復式 expr3 を空白のままにすることもできます。これは、異なる条件に従って異なる反復を呼び出すなど、より複雑な反復を記述するためにも使用できます。
for ステートメント内の条件ステートメント expr2 を空白のままにすると、前述の無限ループになります。もちろん、ループから抜け出すタイミングを決定するために、より複雑な条件を追加することもできますが、ここでは繰り返しません。
3. 複数のループ
複数のループを使用して複数の変数を制御することも、for ステートメントで見落とされがちな機能です。以下の例のように、一般的なタスクでは 2 つのループが一般的に使用され、3 つ以上のループは通常あまり意味がありません。
<?php
for ($i = 0, $j = 10;$i <= 10;$i++, $j--) {
エコー "$i + $j = 10rn";
}
?>
上記のコードは、
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 = 10
4. より複雑な式
for ステートメントの 3 つの式をより複雑に記述すると、最適化アルゴリズムに使用できます。ループ本体のない for ステートメントを使用して、一部のタスクを完了することもできます。たとえば、累積または階乗を計算するには:
<?php
//1~5の累積結果を計算し、ビン値を$jに設定
for ($i = 1,$j = 0; $i <= 5;$j += $i++);
echo $j;
// 1 ~ 5 の階乗結果を計算し、値を $j に設定します。
for ($i = 1,$j = 1; $i <= 5;$j *= $i++);
echo $j;
?>
PHP は C 言語の構文を使用しており、強力な for ループ文などはある程度 C の特性も備えています。