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