目次
この項で説明する内容
はじめに
シーケンシャルプロセス制御
分岐プロセス制御
単一分岐
二重ブランチ
マルチブランチ
switch
循环流程控制
for循环结构
for循环打印99乘法表
while循环结构
do…while循环控制
流程控制中用到的关键字
break
continue
goto
总结
ホームページ バックエンド開発 PHPチュートリアル PHP 基本チュートリアル 4 - プロセス制御

PHP 基本チュートリアル 4 - プロセス制御

Mar 01, 2017 am 09:35 AM

この項で説明する内容

  • 逐次プロセス制御

  • 単一分岐

  • 二分岐

  • 複数分岐

  • スイッチ

  • のために

  • しながら

  • do…while

  • break

  • Continue

  • goto

はじめに

PHPのフロー制御は他の言語と非常に似ており、多くの言語に分かれています。部品。コードの流れを理解すると、コードの考え方が大まかに理解でき、コードの機能と結果が最初に理解できます。 PHPの処理は大きく分けて逐次処理、分岐処理、循環処理の2種類に分かれます。

シーケンシャルプロセス制御

シーケンシャルプロセスとは、単にパーサーが PHP コードに従い、行ごとに解析することを意味します。

PHP コードにフロー制御ステートメントがない場合、PHP コードが実行されます。 .

$a = 12;
$b = 13;
$c = 15;
$res = $a + $b * $c;
echo $res;
ログイン後にコピー

上記のコードと同様に、パーサーはそれを 1 行ずつ解析して実行します。

分岐プロセス制御

分岐プロセスは、コード内で特定の状況が発生した場合にのみ実行されるコードです。たとえば、特定の状況に該当する場合、php の一般的な分岐は次のとおりです。

  • 単一分岐

  • 二重分岐

  • 複数の分岐

単一分岐

コードが特定の状況 特定のコードを実行する場合
単一分岐の言語形式は次のとおりです:

    if(条件表达式){
        //代码块
    }
ログイン後にコピー

例:

<?php

$a = 13;
if($a > 12){//$a符合大于12的条件才会执行下面的这句话

    echo &#39;$a的值大于12<br>&#39;;
}

echo &#39;这里是单分支外边&#39;;
......结果.....
$a的值大于12
这里是单分支外边
ログイン後にコピー

フローチャート
PHP 基本チュートリアル 4 - プロセス制御

単一分岐の if ステートメントの後には中括弧が続きます。ブランチ内のコードが実行されると、パーサーは次のコードの解析を続けます

二重ブランチ

上記の変数 $a が条件を満たさない場合、ほとんどは何も行われないと考えたことはありますか?このように、括弧内の式が満たされない場合、通常は二重分岐構造、言語形式

    if(条件表达式){
        //为真时执行的代码
    }else{
        //为假时执行的代码
    }
ログイン後にコピー

例:

$a = 6;
if($a > 12){

    echo &#39;$a的值大于12<br>&#39;;
}else{
    echo &#39;$a的值小于12&#39;
}

echo &#39;这里是单分支外边&#39;;
......结果.....
$a的值小于12
这里是单分支外边
ログイン後にコピー

フローチャート:
PHP 基本チュートリアル 4 - プロセス制御

上記のコードでは、解決策が得られます。 , when $a が 12 以下の場合、else 内のコードが実行され、その後、外側のコードが実行されます。 if...else はペアで表示されます。しかし、それ以外にあり得ません。

コード内に複数の if...else ステートメントがある場合、それらの間に論理的な関係はありません。ある ifs セットが実行された後、別の ifs セットが実行されます。

マルチブランチ

デュアルブランチが実行された後、まだ判定が必要なブランチがあり、判定が継続される場合があります。このとき、マルチブランチが使用されます。複数の分岐に else を含める必要はありません。ここに複数の else を含めることができます。

基本的な構文は次のとおりです:

if(条件表达式){
    语句
}else if(条件表达式){
    语句
}else if(条件表达式){
    语句
}...
ログイン後にコピー

例:

<?php
$a = 3;
if($a > 10){
    echo &#39;$a 大于10&#39;;
}else if($a > 2){
    echo &#39;$a 小于等于10并且大于2&#39;;
}else{
    echo &#39;$a小于等于2&#39;;
}
.....结果......
$a小于等于10并且大于2
ログイン後にコピー

フローチャート:
PHP 基本チュートリアル 4 - プロセス制御

フローチャートで確認できます。上記の場合、$a が 10 より大きくない場合にのみ下向きに実行されます。これは非常に重要です。その後、 が 2 より大きいかどうかを判断します。後でそれ以上の値がある場合は、条件が満たされるまで実行され続けます。

switch

上記の if...else では、if の条件式は一般に範囲を表します ($a == 2 などの特定の値を表すこともできます) が、複数の特定の値を使用する場合、上記のコードは非常に冗長に見えるため、switch を使用する必要があります。これは、if...else の別の記述方法とも言えます。

switch ステートメントは、同じ式を含む一連の if ステートメントのようなものです。同じ変数 (または式) をさまざまな値と比較し、どの値と等しいかに応じて異なるコードを実行する必要がある状況は数多くあります。これがまさに switch ステートメントの目的です

switch の基本構文は次のとおりです:

switch(变量/表达式/值){
    case 变量/表达式/值:
        处理语句;
    break;
    case 变量/表达式/值:
        处理语句;
    break;
    case 变量/表达式/值:
        处理语句;
    break;
    default:
        上面的情况都不满足执行的语句;
    break;
}
ログイン後にコピー

例:

<?php

$a = &#39;b&#39;;

switch ($a) {
    case &#39;a&#39;:
        echo &#39;$a的值是a&#39;;
        break;
    case &#39;b&#39;:
        echo &#39;$a的值是b&#39;;
        break;
    case &#39;c&#39;:
        echo &#39;$a的值是c&#39;;
        break;
    default:
        echo &#39;$a的值不符合上面的全部情况&#39;;
        break;
}
.....结果.......

$a的值是b
ログイン後にコピー

フローチャート:


PHP 基本チュートリアル 4 - プロセス制御

switch ステートメントの考え方は if の値と非常に似ています。スイッチの括弧は、値が case の後ろの値と同じであるかどうかを判断する必要があるものです。同じであれば、case の下のステートメントを実行します。異なる場合は、次のステートメントを実行します。ケースステートメント。

case ステートメントの後にコロンがあることに注意してください: ; すべてのケースが実行され、条件を満たす値がない場合、デフォルトのステートメントが実行されます。

上記では、各 case ステートメントの下に Break があることがわかります。これはキーワードであり、パーサーが Break に遭遇すると、自動的にスイッチから抜け出し、後続の case は実行されません。 (同じものに遭遇した場合、下方向には実行されません)。

switch に関する注意点:

  • case ステートメントの値が switch 式の値と一致すると、PHP はステートメントの実行を開始します。

  • 当执行case语句后,遇见break就退出,但是如果没有break,则一直运行下去,直到遇见break或switch执行结束。

  • defaule里面的语句是它匹配了任何和其他case都不匹配的情况。

  • case后面的类型可以使整型,浮点型,字符串,布尔值,array,null,通常情况下,我们一般用整数 或字符串。

循环流程控制

在开发中我们有时会有这样的需求,我们需要打印一句话100次,这时候用单纯的顺序流程控制就会很麻烦,但是也能做,但如果是一万次呢…这时候就需要我们想另一种解决思路,我们能不能利用循环,循环的输出一句话,并且控制循环次数,这样我们就会很顺利的输出我们想要的结果。

for循环结构

for循环在我们的开发中是最常见和最常用到的循环,这种循环是在我们知道循环次数的时候,首选的结构,像上面的一万次,我们已经知道了需要循环一万次。学习for循环最主要的是看懂for循环的执行流程。按着for的执行流程,我们可以清晰的知道for循环是在哪里退出,在哪里需要在循环。

语法结构:

for(循环初始值,循环初始值...;循环条件;增量,增量){
        语句循环体;
}
ログイン後にコピー

示例:

for($i = 0; $i < 10; $i++){
    echo &#39;这是for循环<br>&#39;;
}
....结果....
echo 这是for循环(十次);
ログイン後にコピー

流程图:
PHP 基本チュートリアル 4 - プロセス制御

在上面的流程图中我们可以看到for循环的执行顺序,for循环只有在为假的时候跳出循环。

for循环的执行顺序:

  1. 先执行变量初始化$a = 0;在整个for循环中,这句话只执行一次。

  2. 判断$a的值是否小于10,如果小于10,执行for循环里面的语句,如果不小于则退出循环。

  3. 当执行完for循环里面的语句,执行增量表达式,$a++(看前面的递增、递减运算符),

  4. 当$a增加1之后再进行条件判断,$a是否小于10,如果小于10,执行for循环里面的语句,如果不小于则退出循环。

  5. 当$a不小于10的时候,直接跳出循环,执行for循环后面的语句。

明白for循环的执行顺序非常重要,可以看着案列,自己动手画一画。

for循环打印99乘法表

for循环是可以嵌套使用的,当进行嵌套的时候,外面的循环执行一次,里面的for循环执行完才执行外面。

<?php

for($i = 1; $i <= 9; $i++){ //控制乘法表的层数,第一层是1,第二层是2,一直到9;
    for($j = 1; $j <= $i; $j++){ //每一层的个数,第一层是1 * 1 = 1;每一层的最大的不能大于层数,像第一层,不能出现1 * 2 = 2;
        echo $i . &#39;*&#39; . $j . &#39;=&#39; . $i * $j . &#39;  &#39;; //进行显示
    }
    echo &#39;<br>&#39;; //一层显示完后,记着换行。
}
ログイン後にコピー

结果:
PHP 基本チュートリアル 4 - プロセス制御

99乘法表,按照for循环的流程一步步执行,但是for循环的判断条件需要找准,也就是for循环的循环次数。

while循环结构

当我们的循环次数不能确定的时候,这时候for循环就显得有些无力,这时候我们可以选择while循环。while循环当没有特定条件的时候,就是一个死循环,也就是解析器会一直执行,永远不会停止,所以我们在用while循环的时候,注意while循环跳出循环的条件。

while循环的语法结构:

while(循环条件){
    循环体语句;
}
ログイン後にコピー

示例:

<?php

$a = 12;
while($a < 20){
    echo &#39;$a的值是&#39; . $a . &#39;<br>&#39;;
    $a++;
}
....结果....
echo $a的值是12....
ログイン後にコピー

流程图:
PHP 基本チュートリアル 4 - プロセス制御

上面的代码,初始值$a是在while的外面,我们可能不知道需要循环多少次,但是我们知道当$a的值小于20就一直循环,但是我们不能让$a的值不变,如果$a的值不变,while循环就是一个死循环。所以在循环体里面有一个$a的增长语句。

do…while循环控制

do…while和while循环大致一样,但是有一点不同,do…while循环的循环体是在do里面写着,判断条件是在while里面写着,并且do…while不管是否满足while里面的条件,都会执行一次do里面的循环体。

do...while语法结构:

do{
    循环体语句;
}while(判断条件);
ログイン後にコピー

示例:

<?php

$a = 12;
do{
    echo &#39;$a的值是&#39; . $a . &#39;<br>&#39;;
    $a++;
}while($a < 20);
ログイン後にコピー

流程图:
PHP 基本チュートリアル 4 - プロセス制御

从流程图中可以看到是先执行循环体,在进行判断。
当不满足条件后跳出循环。

流程控制中用到的关键字

break

break的作用是当满足某种情况时,不想再循环了,跳出当前循环,也就是结束掉当前的循环,不管你有没有满足最初条件,强制退出。
break 可以结束 for, while,do-while 或者 switch 结构的执行 ,同时break 可以接受一个可选的数字参数来决定跳出几重循环(用于多重循环)。

示例:

<?php

for($i = 0; $i < 10; $i++){
    if($i == 5){
        break;
    }
    echo &#39;$i的值是&#39; . $i . &#39;<br>&#39;;
}
ログイン後にコピー

结果:
PHP 基本チュートリアル 4 - プロセス制御

流程图:
PHP 基本チュートリアル 4 - プロセス制御

从结果中可以看到,当$i的值等于5的时候,就break,跳出循环,所以输出语句输出了5句。

continue

continue在循环结构中用来跳过本次循环,然后接着进行判断是否满足条件。注意:是跳出单次循环,而break是跳出整个循环结构。
continue 可接受一个可选的数字参数来决定跳过几重循环到循环结尾

示例:

<?php

for($i = 0; $i < 10; $i++){
    if($i == 5){
        continue;
    }
    echo &#39;$i的值是&#39; . $i . &#39;<br>&#39;;
}
ログイン後にコピー

结果:
PHP 基本チュートリアル 4 - プロセス制御

流程图:
PHP 基本チュートリアル 4 - プロセス制御

在流程图中可以看到当满足$i == 5的时候,continue跳出本次循环,这时下面的输出就不能输出,所以看到在结果中没有输出$i == 5这种情况。

goto

goto操作符可以用来跳转到程序中的另一位置。该目标位置可以用目标名称加上冒号来标记。

示例:

<?php

$a = 12;
goto A;
echo &#39;这是第一个位置&#39;;
A:
echo &#39;这是第二个位置&#39;;
.....结果......
这是第二个位置
ログイン後にコピー

可以看到其中一个输出语句没有输出,这是因为goto跳转到了A这个位置,注意A后面是一个冒号:
同时goto可以使用在循环中,这样也可以跳出循环。
使用注意事项:

  1. 使用注意事项: PHP中的goto有一定限制,只能在同一个文件和作用域
    中跳转,也就是说你无法跳出一个函数或类方法,也无法跳入到另一个函数。

  2. 常见的用法是用来跳出循环或者switch,可以代替多层的break

总结

流程控制,在开发中不可避免的,我们写的代码总是在流程控制中执行,明白了PHP的流程控制也就明白了代码的整体框架。同时for循环while循环等自己可以进行加深,不管什么编程语言,只有自己不停地敲代码才会明白其中的道理。所以要多敲代码,多练习。

 以上就是PHP基础教程四之流程控制的内容,更多相关内容请关注PHP中文网(www.php.cn)!


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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

See all articles