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