文章教程

2.6.2条件控制语句:if和if……else语句

9/17/2020 9:26:54 PM 人评论 次浏览

2.6.2 条件控制语句:if和if……else语句

PHP通过一系列条件控制语句完成程序的选择执行流程。PHP中使用if、if……else(elseif)语句构建选择程序结构。

1.if语句

if语句的结构如下所示。


if(expr)

statement


上述结构的含义是,如果表达式expr的值为真(TRUE),才会执行语句statement。也就是说,当表达式expr成立时,语句statement才会被执行,否则,表达式expr不成立(即expr的值为FALSE),那么语句statement被忽略,不会执行。代码2-21是一个if语句的示例程序。

代码2-21 if语句2-21.php


01 <?php

02 $a=2;//定义两个整型变量$a和$b

03 $b=3;

04

05 echo'$a='.$a;

06 echo'<br/>';

07 echo'$b='.$b;

08 echo'<br/>';

09 echo'<br/>';

10

11 if($a<$b)//比较两个变量的大小

12 echo"$a小于$b";

13 ?>


【代码解析】上述程序第11行中,表达式$a<$b的值为1(TRUE),所以程序执行echo语句输出“$a小于$b”。if后面可以跟一个空语句,即只加一个分号“;”的语句,表示当条件成立时,什么都不做。如下面的代码。此时,if后跟了一个使用分号结束的空语句,表示当表达式$a<$b的值为1时,程序什么都不做。


if($a<$b);


2.if……else语句

if……else语句的结构如下所示。


if(expr)

statement1

else

statement2


if……else结构的含义是:如果表达式expr的值为真,程序执行语句statement1;否则程序执行statement2。两个语句只能有一个被执行,另外一个将会被忽略。下面的代码2-22演示了if……else语句的使用方法。

代码2-22 if……else语句2-22.php


01 <?php

02 $a=2;//定义两个整型变量$a和$b

03 $b=3;

04

05 if($a>$b)//比较两个变量的大小

06 echo"$a大于$b";

07 else

08 echo"$a小于或等于$b";

09 ?>


【代码解析】上述程序第5行中,表达式$a>$b的值为0(FALSE),所以if后的语句“echo"$a大于$b"”被忽略,不会执行,转去执行else后面的echo语句。在PHP中,else并不是单独的语句,它和if语句必须成对使用,也就是说不能将其从if语句中分离出来单独使用。

如果判断条件成立时要执行的语句只有一条,那么if语句后可以不加花括号“{”和“}”,就像上面几个示例程序写的那样。如果判断条件成立时有多条语句要执行,那么这些语句应该组成语句组,放在一对花括号里。如下面的示例代码2-23所示,当条件成立时,需要执行3条语句,因此它们都在花括号里。

代码2-23 if……else语句2-23.php


01 <?php

02 $a=2;//定义两个整型变量$a和$b

03 $b=3;

04

05 if($a<$b)//比较两个变量的大小

06 {

07 echo'$a='.$a;

08 echo"<br/>";

09 echo"<br/>";

10

11 echo'$b='.$b;

12 echo"<br/>";

13 echo"<br/>";

14

15 echo'$a小于$b';

16 }

17 else

18 {

19 echo"$a和$b比较";

20 echo'$a大于等于$b';

21 }


【代码解析】第6~16行是在满足第5行的条件下执行的{}语句块,第18~21行是在不满足条件的情况下执行的{}语句块。该程序的执行结果如图2-17所示。

图 2-17 if……else语句的使用

3.if……elseif语句

if……elseif语句的结构如下所示。


if(expr1)

statement1

elseif(expr2)

statement2

……

else

statement


if……elseif结构的含义是:如果表达式expr1的值为1,程序执行语句statement1;否则,判断表达式expr2,如果expr2的值为1,程序执行语句statement2;否则,如果有其他表达式需要判断,则依次判断下去,如果所有表达式的值都不为1,则执行else后的statement语句。如果其中有一个表达式的值为1,那么它的语句将被执行,因此,剩下的表达式将不会做判断,程序直接从控制结构中跳出,接着执行后续代码。代码2-24演示了if……elseif语句的使用。

代码2-24 if……elseif语句2-24.php


01 <?php

02 $a=2;//定义两个整型变量$a和$b

03 $b=2;

04

05 echo'$a='.$a;

06 echo'<br/>';

07 echo'$b='.$b;

08 echo'<br/>';

09 echo'<br/>';

10

11 if($a<$b)//比较两个变量的大小

12 echo'$a小于$b';

13 elseif($a==$b)

14 echo'$a等于$b';

15 elseif($a>$b)

16 echo'$a大于$b';

17 else

18 'error!';

19 ?>


【代码解析】上述程序中,因为只有第13行的表达式$a==$b成立,所以只有第14行的语句“echo'$a等于$b'”被执行。当这条语句被执行后,程序将从if……elseif控制结构中跳出,不会执行到代码elseif($a>$b),即程序不会再去做$a>$b是否成立的判断。程序执行结果如图2-18所示。

图 2-18 if……elseif语句的使用

教程类别