写点什么

【web 开发基础】PHP 的流程控制之多向条件分支结构 -PHP 快速入门 (14)

作者:迷彩
  • 2022-10-26
    广东
  • 本文字数:1450 字

    阅读完需:约 5 分钟

【web 开发基础】PHP 的流程控制之多向条件分支结构 -PHP 快速入门 (14)

多向条件分支结构(elseif)


条件分支结构其实是我们生活中常用的一种一种逻辑结构,类似于我们常用的(如果...那么...否则...就.....).本文中的 elseif 子句,和此名称暗示的一样,就是 if 和 else 的组合,相当于(...else{if(表达式){{语句块;}}})。和 else 一样,它延伸了 if 语句,条件分支结构中 elseif 子句会根据不同的表达式值确定执行哪个语句块。在 PHP 中也可以将 elseif 分开成两个关键字“else if"来使用。elseif 语句的语法格式如下:

<?phpif(表达式1 )//如果“表达式1”为TRUE,则执行“语句块1”语句	语句块1;elseif (表达式2 )//如果“表达式2”为TRUE,则执行“语句块2”语句	语句块2;
//elseif语句的个数没有规定,可以无限增加elseif (表达式n )//如果第n个“表达式n”为TRUE,则执行“语句块n"语句 语句块n;else//如果表达式的条件都不为TRUE,则执行“语句块n+1”语句 语句块n+1;
复制代码

在上面的 elseif 的语法当中,如果判断第一 个 “表达式 1”为 TRUE,则执行“语句块 1”的语句;如果判断第二个‘表达式 2” 为 TRUE,则执行“语句块 2”的语句:以此类推,判断第 n 个“表达式 n”为 TRUE,则执行“语句块 n”的语句;如果表达式的条件都不为 TRUE,则执行 else 子语中的‘语句块 n+1” 的语句,当然最后的 else 语句也可以省略。在 elseif 语句中同时只能有一个表达式为 TRUE,即在 elseif 语句中只能有一个语句块被执行,即多个 elseif 从句是排斥关系。

编程实践


在应用开发中,这种多向条件分支结构适合对同一个变量的值在不同范围内进行判断。比如下面分时问候的代码,通过获取服务器中当前的时间,在不同的时间段输出不同的问候。在实际的运用中,我们可以用于网站中,在用户登录后的问候功能,或者可做成报时系统:

<?php     date_default_timezone_set("Asia/Shanghai");       //设置时区    echo "当前时间".date("Y-m-d H:i:s",time())." <br>"; //通过date()函数获取当前时间,并输出        $hour = date("H");              //获取服务器时间中当前时间的小时	    if( $hour < 6 ) {                             echo "凌晨好! 起床了吗还是没睡呢?努力奋斗也要注意作息哦!";    } elseif ( $hour < 10 ) {                  echo "早上好! 一日之计在于晨";    } elseif ( $hour < 12 ) {                 echo "上午好!努力搬砖的时间又到了,加油!";    } elseif ( $hour < 14 ) {                 echo "中午好!不要忘记吃午饭哦!";    } elseif ( $hour < 18 ) {                  echo "下午好!工作累了,放松一下吧!";    } elseif ( $hour < 19 ) {                  echo "傍晚好!犒劳自己一下,晚餐吃顿好的!";    } elseif ( $hour < 22 ) {                  echo "晚上好!工作了一天,刷会剧放松一下";    } else {                                      echo "夜里好!不早了,该睡了哦!";    }
复制代码

执行结果:

:写多条件分支语句时,一定要注意条件的排列的顺序,避免陷入条件穿透的陷阱


使用 elseif 语句有一条基本规则, 即总是优先把包含范围小的条件放在前面处理。比如:$hour<6 和 $hour<10 两个条件,明显 $hour<6 的范围更小,所以应该先处理 $hour<6 的情况。和前面的 if 语句一样,使用 elseif 语句控制是否执行一条语句,可以使用花括号括起来,也可以不用。但要想使用 elseif 语句能够控制是否执行多条语句,则必须使用花括号括起来形成代码块。通常建议不要省略 if、else、 elseif 后执行块的花括号,即使条件执行体只有一行代码。 因为保留花括号会有更好的可读性,而且会减少发生错误的可能。

发布于: 刚刚阅读数: 4
用户头像

迷彩

关注

我的工作是常年写bug|公众号:编程架构之美 2020-06-18 加入

修bug的菜鸟~公众号:“互联网有啥事”已改名为“编程架构之美”

评论

发布
暂无评论
【web 开发基础】PHP 的流程控制之多向条件分支结构 -PHP 快速入门 (14)_10月月更_迷彩_InfoQ写作社区