PHP7实践指南:O2O网站与App后台开发
上QQ阅读APP看书,第一时间看更新

3.1 条件控制语句

条件控制语句有两个,一个是if条件控制语句,另一个是switch条件控制语句。

3.1.1 if条件控制语句

PHP和C语言有着类似的if语句结构,其使用格式如下:

        <? php
        if(expr){
        statement_1
        } else {
        statement_2
        }
        ?>

expr按照布尔求值,如果expr为true,就执行statement_1(此处表示代码块),否则执行statement_2。

请看以下示例:

        <? php
        if(3>1){
            echo'right';
        }else{
            echo "incorrect";
        }
        ?>

执行上述代码将会打印出“right”。

当有多个条件需要判断时,可以使用else if语句继续添加条件。使用格式如下:

        <? php
        if(expr1){
            statement_1
        }else if(expr2){
            statement_2
        }else if(expr3){
            statement_3
        }else if(expr4){
            statement_4
        }else{
                  statement_5
        }
        ?>

具体示例如下:

        <? php

        $a=22;
        if($a<5){
            echo "$a is less than 5";
        }else if($a>=5&&$a<10){
            echo "\$a is greater than or equal 5, but less than 10";
        }else if($a>=10&&$a<20){
            echo "\$a is greater than or equal 10, but less than 20";
        }else if($a>=20&&$a<30){
            echo "\$a is greater than or equal 20, but less than 30";
        }else{
            echo "\$a is greater than or equal 30";
        }
        ?>

执行以上代码将会打印出以下语句:

          $a is greater than or equal 20, but less than 30

3.1.2 switch分支语句

switch语句类似具有多个判断条件的if语句。switch语句将一个变量或表达式与很多不同的值比较,根据它等于哪个值来选择执行不同的代码。switch语句的语法如下:

        switch (expr){
            case expr1:
                statement_1;
                break;
            case expr2:
                statement_2;
                break;
            case expr3:
                statement_3;
                break;
            case expr4:
                statement_4;
                break;
            default:
                statement_default;
                break;
        }

PHP会将expr中的值与expr1、expr2、expr3、expr4的值进行比较,若与其中一个值相等,则对应执行其下的代码块,否则执行default后的代码。在每个代码块后面加上break是为了阻止执行完本部分代码之后继续向下执行。一个关于switch语句的实例如下:

        <? php
        $a=3;
        switch ($a){
            case 1:
                echo "\$a is 1";
                break;
            case 2:
                echo "\$a is 2";
                break;
            case 3:
                echo "\$a is 3";
                break;
            case 4:
                echo "\$a is 4";
                break;
            case 5:
                echo "\$a is 5";
                break;
            default:
                echo "\$a is not equal 1,2,3,4,5";
                break;
        }
        ?>

执行以上代码的结果是:

        $a is 3

如果没有在代码块中加入break,执行结果将会是:$a is 3$a is 4$a is 5$a is not equal 1,2,3,4,5。代码会执行完case 3后面的全部语句,直到遇到break或者文件结束。