PHP流程控制(1)

  • 2020-07-22 10:07:56
  • 阅读次数:
  • 作者:盈岚科技小编
  • 来源:http://www.lyjtt.cn

做网站中,任何PHP脚本都是由一系列语句构成的。一条语句可以是一个赋值语句,一个函数调用,一个循环,一个条件语句或者是一个什么也不做的空语句。语句通常以分号结束,用户可以使用大括号将一组语句封装成一个语句组。语句组本身可以当作是一行语句。本节将重点介绍PHP流程控制结构和语句,这里主要包括条件语句和循环语句。

if条件语句

if结构是很多语言(包括PHP在内)最重要的特性之一,它允许按照条件执行代码片段。PHP的if结构和C语言相似。

<?phpif (expr)    statement?>

如果表达式expr的值为true,PHP将执行statement,如果值为false,将忽略statement。例如,在下面示例中,如果$a大于$b,则将显示"a大于b"。

<?phpif($a > $b)     echo "a 大于b";?>

经常需要按照条件执行不止一条语句,当然并不需要给每条语句都加上一个if子句。可以将这些语句放入语句组中。例如,如果$a大于$b,则将显示"a大于b",并且将$a的值赋给$b。

<?phpif ($a > $b) {    echo "a大于b"; $b = $a;}?>

if语句可以无限层地嵌套在其他if语句中,这给程序的不同部分的条件执行提供了充分的弹性。

else条件语句

用户经常需要设计在满足某个条件时执行一条语句,而在不满足该条件时执行其他语句,这正是else语句的功能。else延伸了if语句,可以在if语句中的表达式的值为false时执行语句。例如,在下面示例中,如果$a大于$b时,显示"a大于b",反之则显示"a不大于b"。

<?phpif ($a > $b) {    echo "a大于b";} else {    echo "a不大于b";}?>else

语句仅在if以及elseif语句中的表达式的值为false时执行。

else if条件语句

else if与else条件语句一样,它延伸了if语句,可以在原来的if表达式值为false时执行不同语句。但是与else不一样的是,它仅在else if的条件表达式值为true时执行语句。例如,在下面示例中,如果$a大于$b时,显示"a大于b",如果相等,则显示"a等于b",都不成立则显示"a小于b"。

<?phpif ($a > $b) {    echo "a大于b";} elseif ($a == $b) {    echo "a等于b";} else {    echo "a小于b";}?>

在同一个if结构中可以有多个elseif语句。第一个表达式值为true的elseif语句(如果有的话)将会执行。在PHP中,也可以写成elseif,它和else if语句的行为完全一样。句法分析的含义有少许区别,elseif的语句仅在之前的if或elseif的表达式值为false,而当前的elseif表达式值为true时执行。

注意:elseif与else if只有在使用大括号的情况下才认为是完全相同。

switch条件语句

elseif语句可以设计多重选择,但是比较繁琐,为了避免if语句的冗长结构,用户可以使用switch语句简化编程。switch语句适合于这样的环境:当需要把同一个变量(或表达式)与很多不同的值比较,并根据它等于哪个值来执行不同的代码。

<?phpswitch ($i) {    case 0:        echo "i= 0";        break;    case 1:        echo "i=1";        break;    case 2:        echo "i=2";        break;}?>

switch语句是一行接一行地执行,开始时没有代码被执行,仅当一个case语句中的值和switch表达式的值匹配时,PHP才开始执行语句,直到switch的程序段结束或者遇到第一个break语句为止。如果不在case的语句段最后写上break的话,PHP将继续执行下一个case中的语句段。如:

<?phpswitch ($i) {    case 0:        echo "i=0";    case 1:        echo "i=1";    case 2:        echo "i=2";}?>

如果$i等于0,PHP将执行所有的输出语句,如果$i等于1,PHP将执行后面两条输出语句,只有当$i等于2时,才会得到预期的结果,只显示“i=2”。所以,别忘了break语句很重要。

在switch语句中条件只求值一次,并用来与每个case语句比较。而在elseif语句中条件会再次求值。如果条件比较复杂,或者在一个很多次的循环中,那么选用switch语句可能会快一些。在一个case中的语句也可以为空,这样只不过将控制转移到了下一个case中的语句。如:

<?phpswitch ($i) {    case 0:    case 1:    case 2:        echo "i<3";        break;    case 3:        echo "i=3";}?>

default语句比较特殊,它匹配其他case都不匹配的情况。如:

<?phpswitch ($i) {    case 0:        echo "i=0";        break;    case 1:        echo "i=1";        break;    case 2:        echo "i=2";        break;    default:        echo "i不是0、1、2";}?>

case表达式可以是任何求值为简单类型的表达式,即整型或浮点数以及字符串,不能是数组或对象,除非它们被解除引用成为简单类型。同时,PHP还允许使用分号(;)代替case语句后的冒号(:),如:

<?phpswitch($i){    case 1;    case 2;    case 3;        echo "i=3";        break;    default;        echo '…';}?>

注意:与其他语言不同,在switch结构中,continue语句作用类似于break语句。如果在循环中有一个switch结构并希望continue到外层循环中的下一个轮回,可以使用continue语句。


当前文章标题:PHP流程控制(1)

当前URL:http://www.lyjtt.cn/news/wzzz/3244.html

上一篇:PHP表达式

下一篇:PHP流程控制(2)

网站建设、抖音推广、头条推广、微信朋友圈推广、快手推广专线:181-8386-5875(点击可一键拨号)