详解php实现分支操作的两种方法
分支执行是依据条件满足哪个语句块来执行某些代码的,在php中主要是通过if,和switch两种语句来执行分支操作的,跟小编去看看吧。
1.if语句
单向条件
if(表达式) { 语句;}
在单向条件下,只要表达式为true,就可以执行后面的语句,如果表达式不成立,则不执行。
$pass=60; $a=40; if($a>=$pass){ echo '恭喜,考试通过'; } echo '代码执行结束!';
由于$a<$pass
,所以表达式为false,输出结果为:代码执行结束!
双向条件
if(表达式) { 语句1; }else{ 语句2; }
在双向条件下,如果表达式为true,将执行语句1,如果表达式不成立,则执行语句2。
$pass=60; $a=40; if($a>=$pass){ echo '恭喜你!考试通过啦!'; }else{ echo '很遗憾,您的考试没有通过!'; }
由于$a<$pass
,所以表达式为false,输出结果为:很遗憾,您的考试没有通过!
多向条件
if(表达式1) { 语句1; }elseif(表达式2){ 语句2; }elseif(表达式3){ 语句3; }else{ 语句4; }
在多向条件下,如果表达式1为true,将执行语句1,如果表达式1不成立,则执行表达式2。表达式2成立,执行语句2,不成立执行语句3,以此类推下去,直到退出if
语句。
$a=84; $grade1=60;//低于60不及格 $grade2=75;//及格 $grade3=85;//良好 if($a<$grade1){ echo '不及格'; }elseif($a<$grade2){ echo '恭喜你及格了'; }elseif($a<$grade3){ echo '良好!'; }else{ echo '优秀'; }
由于$a>$grade1
,表达式为false,所以执行$a>$grade2
,然而表达式不成立,所以执行$a<$grade3
,表达式成立,输出结果:良好!
注意:if
语句表达式所控制的代码,最好用花括号括起来,哪怕就是一条语句也用花括号括起来。
2.switch语句
switch(表达式){ case 值 1:语句块1;//case相当于== break; case 值 2:语句块2; break; ....... default:语句块n }
在switch
语句中,表达式中的值会与下面某个case
值相同,如果没有相同的值,则执行default
语句。
<?php switch($i){ case 0:echo"0"; break; case 1:echo"1"; break; case 2:echo"2"; break; default:echo"3"; break; } ?>
执行上述代码会得到结果:0
注意:
-
表达式的值最好是整形或者字符串;
-
不要忘记break语句来跳出switch语句,每个case语句后面都加上break;
-
如果某个case语句后面并没有接语句块,那么就说明这个语句块的内容是同下;
-
case后面的语句块是不需要{}括起来的。