在现实生活中,我们常常会说:如果明天下雨的话,那么我就带把伞;如果明天很热的话,那么我就不出门了。这种“如果。。。那么。。。”的假设关系的句式,很好的表达了我们自己在遇到不同情况时,所要做出的决定与选择。那么在计算机编程语言中呢?当我们的计算机在遭遇不同情况的情形时,它又是作何选择的呢?
在PHP中,我们使用if...else条件分支语句,用于根据不同条件执行不同动作。在我们编写代码时,常常需要为不同的判断执行不同的动作。那么这时候if...else条件分支语句就很好的帮我们解决了这个问题。
在PHP中,提供了下列条件分支语句:
if条件单路分支语句
if条件单路分支语句用于单条件判断的情形,仅当指定条件成立时执行代码。
例:
<?php//获取今天的日期$day = date('d');//判断是否是奇数,如果是,则输出if( $day % 2 != 0 ) { echo "今天是{$day}号,是奇数天";}
运行结果:
注意:if后面的条件必须用小括号()括起来,大括号{}则要将执行代码括起来。这是PHP中规定的语法格式。如果不遵守,则代码就会报错,无法正常运行。
if...else条件双路分支语句
相较于单if条件单路分支语句,多了一个当条件不成立时的执行块。
例:
<?php//获取昨天的日期$day = date('d',strtotime("-1 day"));//判断是否是奇数,如果是,则输出奇数天;如果不是则输出,偶数天if($day % 2 != 0) { echo "昨天是{$day}号,是奇数天";}else{ echo "昨天是{$day}号,是偶数天";}
运行结果:
if...elseif ... else多条件多路分支语句
在我们遭遇到需要同时对多个条件进行判断与执行时,我们就需要使用if...elseif...else多条件多路分支语句。
例:
<?php//获取当前的时间分钟数$minute = date('i');echo $minute."
";if( $minute <= 10 ) { echo "当前时分是".$minute.",小于等于10.";}elseif( 10 < $minute && $minute <= 20 ) { echo "当前时分是".$minute.",小于等于20,大于10.";}elseif( 20 < $minute && $minute <= 30 ) { echo "当前时分是".$minute.",小于等于30,大于20.";}elseif( 30 < $minute && $minute <= 50 ) { echo "当前时分是".$minute.",小于等于50,大于30.";}else{ echo "当前时分是".$minute.",小于等于60,大于50.";}
运行结果:
注意:我们其中的elseif是可以根据需要判断条件的多少,来相应的增加的。理论上如果有100个条件需要我们判断,那除去首尾的if和else,我们中间可以插入98个elseif,用来判断和执行相应的代码。不过在实际开发中,我们并不认可通过这种方式来编写我们的代码,这样会让我们的代码变得很臃肿且不易阅读和维护。
小tips:
elseif 和 else if 一样的。无需纠结该写成哪个样。
上面我们讲完了if条件分支语句相关的知识点,接下来讲讲switch多路分支语句。其实,switch 多路语句也用于根据多个不同条件执行不同动作。你可以理解为是if...elseif...else多条件多路分支语句的简化版本。
例:
<?php//获取当前的时间分钟数$minute = date('i');echo $minute."
";switch ( $minute ) { case $minute <= 10: echo "当前时分是".$minute.",小于等于10."; break; case 10 < $minute && $minute <= 20: echo "当前时分是".$minute.",小于等于20,大于10."; break; case 20 < $minute && $minute <= 30: echo "当前时分是".$minute.",小于等于30,大于20."; break; case 30 < $minute && $minute <= 50: echo "当前时分是".$minute.",小于等于50,大于30."; break; default: echo "当前时分是".$minute.",小于等于60,大于50."; break;}
运行结果:
工作原理:首先对一个简单的表达式 n(通常是变量)进行一次计算。将表达式的值与结构中每个 case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配(即没有 case 为真)时执行。
其实就是switch表达式的简化版本
例:
<?php$n = 8;//php7switch( $n ) { case '8': $result = "这是switch表达式输出的字符串8!"; echo $result; break; case8: $result = "这是switch表达式输出的整型8"; echo $result; break;}//php8echo match( $n ) { '8' => "这是match表达式输出的字符串8!", 8 => "这是match表达式输出的整型8",};
运行结果:
注意:根据以上运行结果,我们可以看出,在switch表达式中,它的条件匹配是松散比较,而在match表达式中则是严格比较。如果大家还不知道什么是松散比较和严格比较,可以看看我们上一节的内容,上面有做详细介绍。
在本节中,我们大量使用到PHP运算符相关的知识点,如果同学们在看本节内容时有些不易理解,我建议同学们好好看看上一节有关PHP运算符和运算符优先级的相关知识。只有理解透彻运算符相关知识点,在看本节代码示例时,才不会云里雾里。
留言与评论(共有 0 条评论) “” |