ホームページ >バックエンド開発 >PHPチュートリアル >ステートメントの PHP フロー制御

ステートメントの PHP フロー制御

不言
不言オリジナル
2018-05-04 09:38:431561ブラウズ

この記事は主に PHP のプロセス制御に関する for ステートメントを紹介しています。必要な方はぜひ参考にしてください。

専門家向けです。このページを閉じてくださいこの記事を読むのに 7 分かかります。理解するのは難しいですか?(PHP 4、PHP 5、PHP 7)

for ループは PHP で最も複雑なループ構造です。その動作は C 言語の動作に似ています。 for ループの構文は次のとおりです。

for (expr1; expr2; expr3)
    statement

最初の式 () は、ループが開始される前に 1 回無条件に評価 (および実行) されます。

各ループが開始される前に評価します。値が TRUE の場合、ループは続行され、ネストされたループ ステートメントが実行されます。 。値が FALSE の場合、ループは終了します。

は各ループの後に評価 (および実行) されます。

各式は空にすることも、カンマで区切った複数の式を含めることもできます。式 では、カンマで区切られたすべての式が評価されますが、最後の結果のみが取得されます。空は、ループが無期限に継続することを意味します (C と同様、PHP はその値が TRUE であると暗黙的に信じます)。これは、思っているほど役に立たないかもしれません。ループを終了するには、for 式の真偽チェックを使用する代わりに、条件付き

breakTRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环。

 在每次循环之后被求值(并执行)。

每个表达式都可以为空或包括逗号分隔的多个表达式。表达式  中,所有用逗号分隔的表达式都会计算,但只取最后一个结果。 为空意味着将无限循环下去(和 C 一样,PHP 暗中认为其值为 TRUE ステートメントを使用することがよくあります。 次の例を考えてみましょう。どちらも 1 から 10 までの数字が表示されています:

<?php
/* example 1 */

for ($i = 1; $i <= 10; $i++) {
    echo $i;
}

/* example 2 */

for ($i = 1; ; $i++) {
    if ($i > 10) {
        break;
    }
    echo $i;
}

/* example 3 */

$i = 1;
for (;;) {
    if ($i > 10) {
        break;
    }
    echo $i;
    $i++;
}

/* example 4 */

for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
?>

もちろん、最初の例が最もきれいに見えます (または 4 番目の例を主張する人もいます) が、ユーザーは空の式を使用するのが難しいと感じるかもしれません。多くの場面で便利になります。

PHP は、コロンを使用した for ループの代替構文もサポートしています。

for (expr1; expr2; expr3):
    statement;
    ...
endfor;

場合によっては、次の例のように配列を走査する必要があることがよくあります。

<?php
/*
 * 此数组将在遍历的过程中改变其中某些单元的值
 */
$people = Array(
        Array(&#39;name&#39; => &#39;Kalle&#39;, &#39;salt&#39; => 856412), 
        Array(&#39;name&#39; => &#39;Pierre&#39;, &#39;salt&#39; => 215863)
        );

for($i = 0; $i < count($people); ++$i)
{
    $people[$i][&#39;salt&#39;] = rand(000000, 999999);
}
?>

上記のコードは、ループされるたびに配列の長さを計算する必要があるため、実行が非常に遅くなる可能性があります。配列の長さは常に同じままであるため、

count():

<?php
$people = Array(
        Array(&#39;name&#39; => &#39;Kalle&#39;, &#39;salt&#39; => 856412), 
        Array(&#39;name&#39; => &#39;Pierre&#39;, &#39;salt&#39; => 215863)
        );

for($i = 0, $size = count($people); $i < $size; ++$i)
{
    $people[$i][&#39;salt&#39;] = rand(000000, 999999);
}
?>
を常に呼び出す代わりに、中間変数を使用して配列の長さを格納し、最適化できます。しながら

phpプロセス制御elseif/else if

以上がステートメントの PHP フロー制御の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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