控制程序仅执行一次 php,PHP流程控制(1)

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

if条件语句

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

如果表达式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语句适合于这样的环境:当需要把同一个变量(或表达式)与很多不同的值比较,并根据它等于哪个值来执行不同的代码。

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

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

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值