eclipse折叠if语句块_「PHP教程」PHP判断语句(二合一)

上一章

「PHP教程」数组常用函数及实例


条件语句

在程序开发过程中,经常需要根据不同的情况,执行不同的代码,这个时候就需要用到条件判断,在PHP中,可使用if或者switch进行条件判断,具体应根据实际场景进行选择相应的条件语句:

1、if条件语句

最基础的条件判断语句:

if(条件){ 代码块}

只进行一次条件判断,使用场景:只需要判断是否满足 if 语句中条件的是否满足,若条件为真,则执行代码块中的内容;否则,继续执行 if 相关语句之外的部分。

示例:“如果你赢了他,那我给你一百块”。在这个条件语句中,“我给你一百块”这个行为的前提条件是“你赢了他”,如果条件满足了,“我”才“给你一百块”。否则,什么也不会发生。

2、if...else...条件语句

基础条件语句完整版:

if(条件){ 代码块一}else{ 代码块}

只进行一次条件判断,使用场景:只需要判断是否满足 if 语句中条件的是否满足,若条件为真,则执行代码块中的内容;否则,执行 else 中的代码块。

示例:“如果你赢了,那我给你一百块,否则你给我一百块”。在这个条件语句中,“我给你一百块”这个行为的前提条件是“你赢了”,如果条件满足了,“我给你一百块钱”。否则,就是“你给我一百块”。

3、if...elseif...else...条件语句

多条件判断语句,在PHP语句中 elseif() 等效于 else if() :

if(条件一){ 代码块一}elseif(条件二){ 代码块二}......else{ 代码块}

可进行多次条件判断,使用场景:若要进行多次判断,可多次使用 else if 语句,若满足相应的条件,则执行对应的代码块,若所有的条件都不满足,则执行 else 中的代码块。

示例:“如果你成绩在70以上,奖励你一百块;80以上,奖励五百块;90以上,奖励一千;否则什么都不奖励”。在这个条件语句中,当你成绩大于70,奖励一百块,大于80是五百,大于90是一千;否则,什么都没有。

注意:虽然以上示例听上去似乎没有什么问题,但是如果你的成绩是92,计算机并不会直接去判断你的成绩是否大于90,而是根据你写的代码自上而下执行,如:

//错误代码实例$score = 92;if($score>70){ echo "奖励一百块";}elseif($score>80){ echo "奖励五百块";}elseif($score>90){ echo "奖励一千块";}else{ echo "没有奖励";}

上述代码中,虽然成绩为92,按照人的思维,应该是“奖励一千块”,但是计算机并不会这么觉得,因为它在执行第一个条件判断 $score>70 时,条件已经满足,这个时候它会执行输出“奖励一百块”,然后结束条件判断。

若想要达到我们想要的结果,我们还需要对其修正,既要判断是否大于70,也要判断是否不大于下一个阶段的需求

$score = 92;if($score>70 && $score<=80){ echo "奖励一百块";}elseif($score>80 && $score<=90){ echo "奖励五百块";}elseif($score>90){ echo "奖励一千块";}else{ echo "没有奖励";}

在遇到类似这种情况时,我们可以使用switch语句进行判断。

4、switch...case...条件语句

switch...case...语句:判断switch中的量,与case后的值是否相等,若相等则执行相应代码段,若所有 case 比较结果都为假,则执行default中的代码段。

switch ($i){case str1: 代码段1 break;case str2: 代码段2 break;default: 代码段}

注意:每一个 case 都要使用 break 关键字阻断代码继续执行(需要全部执行的特殊情况例外),否则当有一个 case 的判定结果为真时,真结果后面的所有 case 和 default 都会被执行:

//错误示例,未使用break阻断$score = 92;$s = (integer) ($score/10);switch($s){ case 7: echo "奖励一百块"; echo "
";case 8: echo "奖励五百块"; echo "
";case 9: echo "奖励一千块"; echo "
";default: echo "没有奖励"; echo "
";}

运行结果:

969462a2787c82eb79e0c66a801ccd21.png

结果中不仅显示了“奖励一千块”,将default中的内容也显示了出来,修正代码:

<?php //PHP 条件语句$score = 92;$s = (integer) ($score/10);switch($s){ case 7: echo "奖励一百块"; echo "
"; break;case 8: echo "奖励五百块"; echo "
"; break;case 9: echo "奖励一千块"; echo "
"; break;default: echo "没有奖励"; echo "
"; break;}?>

运行结果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值