当前位置:  首页>> 技术小册>> PHP8入门与项目实战(2)

流程控制也叫控制结构,在一个应用中用来定义执行程序流程。它决定了某个程序段是否会被执行和执行多少次。

PHP中的控制语句分为3类:顺序控制语句、条件控制语句和循环控制语句。其中,顺序控制语句从上到下依次执行,这种结构没有分支和循环,是PHP程序中最简单的结构。下面主要讲解条件控制语句和循环控制语句。

4.7.1 条件控制结构

条件控制语句中包含两个主要的语句,一个是if语句,另一个是switch语句。

1.单一条件分支结构(if语句)

if语句是最为常见的条件控制语句,格式为:

  1. if(条件判断语句){
  2. 命令执行语句;
  3. }

这种形式只是对一个条件进行判断。如果条件成立,就执行命令语句,否则不执行。

if语句的流程控制图如图4-13所示。

【例4.12】

  1. <?php
  2. $num = rand(1,100); //使用rand()函数生成一个随机数
  3. if ($num % 2 != 0){ //判断变量$num是否为奇数
  4. echo "\$num = $num"; //如果为奇数,输出表达式和说明文字
  5. echo "<br/>$num是奇数。";
  6. }
  7. ?>

运行后刷新页面,结果如图4-14所示。

【案例分析】
(1)此实例首先使用rand()函数随机生成一个整数$num,然后判断这个随机整数是不是奇数,若是,则输出上述结果;若不是,则不输出任何内容。所以,如果页面内容显示为空,就刷新页面。

(2)rand()函数返回随机整数,语法格式如下:

  1. rand(min,max)

此函数主要是返回min和max之间的一个随机整数。如果没有提供可选参数min和max,则rand()返回0到RAND_MAX之间的伪随机整数。

2.双向条件分支结构(if…else语句)
如果是非此即彼的条件判断,可以使用if…else语句。它的格式为:

  1. if(条件判断语句){
  2. 命令执行语句A
  3. }else{
  4. 命令执行语句B
  5. }

这种结构形式首先判断条件是否为真,如果为真,就执行命令语句A,否则执行命令语句B。

if…else语句程序流程控制图如图4-15所示。

【例4.13】

  1. <?php
  2. $d=date("D"); //定义时间变量
  3. if ($d=="Fri") //判断时间变量是否等于周五
  4. echo "今天是周五哦!";
  5. else
  6. echo "可惜今天不是周五!";
  7. ?>

运行后结果如图4-16所示。

3.多向条件分支结构(elseif语句)
在条件控制结构中,有时会出现多种选择,此时可以使用elseif语句。它的语法格式为:

  1. if(条件判断语句){
  2. 命令执行语句;
  3. }elseif(条件判断语句){
  4. 命令执行语句;
  5. }…
  6. else{
  7. 命令执行语句;
  8. }…

elseif语句程序流程控制图如图4-17所示。

【例4.14】

  1. <?php
  2. $score = 85; //设置成绩变量$score
  3. if($score >= 0 and $score <= 60){ //判断成绩变量是否在0~60之间
  4. echo "您的成绩为差"; //如果是,说明成绩为差
  5. }
  6. elseif($score > 60 and $score <= 80){ //否则判断成绩变量是否在61~80之间
  7. echo "您的成绩为中等"; //如果是,说明成绩为中等
  8. }else{ //如果两个判断都是false,则输出默认值
  9. echo "您的成绩为优等"; //说明成绩为优等
  10. }
  11. ?>

运行后结果如图4-18所示。

4.多向条件分支结构(switch语句)
switch语句的结构给出不同情况下可能执行的程序块,条件满足哪个程序块,就执行哪个语句。它的语法格式为:

  1. switch(条件判断语句){
  2. case可能判断结果a
  3. 命令执行语句;
  4. break;
  5. case可能判断结果b
  6. 命令执行语句;
  7. break;
  8. default
  9. 命令执行语句;
  10. }

其中,若“条件判断语句”的结果符合某个“可能判断结果”,就执行其对应的“命令执行语句”;如果都不符合,则执行default对应的默认项的“命令执行语句”。

switch语句的流程控制图如图4-19所示。

【例4.15】

  1. <?php
  2. $x=5; //定义变量$x
  3. switch ($x) //判断$x与1~5之间的关系
  4. {
  5. case 1:
  6. echo "数值为1";
  7. break;
  8. case 2:
  9. echo "数值为2";
  10. break;
  11. case 3:
  12. echo "数值为3";
  13. break;
  14. case 4:
  15. echo "数值为4";
  16. break;
  17. case 5:
  18. echo "数值为5";
  19. break;
  20. default:
  21. echo "数值不在1到5之间";
  22. }
  23. ?>

运行后结果如图4-20所示。