PHP 从入门到项目实践(超值版)
上QQ阅读APP看书,第一时间看更新

第4章 PHP流程控制语句

◎本章教学微视频:4个 29分钟

学习指引

PHP程序总是由若干条语句组成,其中有三种流程控制语句用以实现选择结构与循环结构,分别为条件控制语句、循环控制语句和跳转语句,本章将进行具体的介绍。合理地使用这些控制结构可以使程序流程清晰、可读性强,从而提高工作效率。

重点导读

  •  掌握条件控制语句的使用。
  •  掌握循环控制语句的使用。
  •  熟悉跳转语句的使用。
  •  了解文件包含的使用。

4.1 条件控制语句

在编写程序时,有时需要根据不同的判断来执行对应的操作,这时就可以使用条件语句来完成它。条件控制语句主要有if、if...else、elseif和switch四种,下面分别进行介绍。

4.1.1 if语句

if条件语句用于仅当指定条件成立时执行代码。if条件语句的语法格式如下:

如果条件的值为真,就按顺序执行statement语句,否则就跳过该语句往下执行。

当执行的语句为多条时,使用“{}”括起来,格式如下:

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

下面举一个例子,使用rand()函数生成一个随机的数$num,然后判断$num是不是偶数,如果是偶数输出$num的值和说明文字。

【例4-1】(实例文件:ch04\Chap4.1.php)if语句实例。

在IE浏览器中运行结果如图4-2所示。

图4-1 if语句的流程控制图

图4-2 if语句运行结果

提示rand()函数用来生成一个随机数,格式为int rand(int mix,int max),该函数返回一个mix和max之间的随机数。如果没有参数,则返回0到RAND_MAX之间的随机整数。

4.1.2 if...else语句

if...else语句用来当条件成立时执行一块代码,条件不成立时执行另一块代码。语法格式如下:

当条件成立时,执行statement1语句;当条件不成立时,执行statement2语句。

if...else语句的流程控制图如图4-3所示。

【例4-2】(实例文件:ch04\Chap4.2.php)if...else语句实例。

在IE浏览器中运行结果如图4-4所示。

图4-3 if...else语句的流程控制图

图4-4 if...else语句运行结果

4.1.3 elseif语句

if...else语句只能选择两种结果,当条件成立时执行一块代码,当条件不成立时,执行另一块代码。但当出现多个条件的时候,例如,有一个班级考试的成绩,老师划分等级:85分以上的,成绩优秀;60~85分之间的,成绩良好;低于60分的,则成绩不及格。在这种多个条件下,就需要使用elseif语句了。elseif也可以写成else if。

elseif语句的语法格式如下:

elseif语句的流程控制图如图4-5所示。

图4-5 elseif语句的流程控制图

【例4-3】(实例文件:ch04\Chap4.3.php)elseif语句实例。

在IE浏览器中运行结果如图4-6所示。

提示elseif语句仅在之前的if语句和所有之前的elseif语句中条件成立时,并且当前的elseif语句条件成立时执行。

图4-6 elseif语句运行结果

4.1.4 switch...case多重判断语句

如果希望有选择地执行若干代码块之一,可以使用switch语句。switch语句的语法格式如下:

工作原理:switch语句首先进行一次计算,将表达式的值与结构中case的值进行比较,只有当一个case的值和switch表达式的值匹配时才开始执行语句。代码执行后,使用break来阻止代码跳入下一个case中继续执行,4.3.1节中将详细介绍break语句。default语句用于没有匹配到case时执行。

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

图4-7 switch语句的流程控制图

【例4-4】(实例文件:ch04\Chap4.4.php)switch语句实例。

在IE浏览器中运行结果如图4-8所示。

注释:在例4-4中,首先定义一个变量$fruit,值为“橘子”,把$fruit传入switch语句中,然后进行匹配,匹配到执行相应代码,匹配不到执行default。

提示switch语句与elseif语句都可以进行多重选择,但是在不同的情况下运行的效率是不一样的。当被判断的值是常量(固定不变的值)时,switch语句的运行效率比elseif语句的运行效率高;当被判断值为变量,elseif语句的运行效率高于switch语句。

图4-8 switch语句运行结果