ホームページ  >  記事  >  バックエンド開発  >  phpのforループの拡張使用例を詳しく解説

phpのforループの拡張使用例を詳しく解説

伊谢尔伦
伊谢尔伦オリジナル
2017-06-23 13:48:172050ブラウズ

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(&#39;Y&#39;) == &#39;2199&#39;) {
  break;
 }
}
?>

2. 空の式を使用する

次のステップは、初期化ステートメント expr1 で null 構文を使用することです。expr1 を空白のままにする最も一般的な機能は、より複雑な初期化作業を完了することです。

<?php
if (isset($i)) {
unset($i);
 if ((int) date(&#39;&#39;) < 2008) {
  $i = 0;
 } else {
  $i = 1;
 }
} else {
 $i =3;
}
for (;$i < 10;$i++) {
 echo $i;
}
?>

同様に、反復式 expr3 を空白のままにすることもできます。これは、さまざまな条件に応じてさまざまな反復を呼び出すなど、より複雑な反復を記述するためにも使用できます。

for ステートメント内の条件ステートメント expr2 を空白のままにすると、前述の無限ループになります。もちろん、ループから抜け出すタイミングを決定するために、より複雑な条件を追加することもできますが、ここでは繰り返しません。

3. 複数のループ

複数の

変数を制御するために複数のループを使用することも、for ステートメントでは無視されることが多い機能です。以下の例のように、一般的なタスクでは 2 つのループが一般的に使用され、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 = 10

4. より複雑な式

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。