【web 开发基础】PHP 的流程控制之多向条件分支结构 -PHP 快速入门 (14)
多向条件分支结构(elseif)
条件分支结构其实是我们生活中常用的一种一种逻辑结构,类似于我们常用的(如果...那么...否则...就.....).本文中的 elseif 子句,和此名称暗示的一样,就是 if 和 else 的组合,相当于(...else{if(表达式){{语句块;}}})。和 else 一样,它延伸了 if 语句,条件分支结构中 elseif 子句会根据不同的表达式值确定执行哪个语句块。在 PHP 中也可以将 elseif 分开成两个关键字“else if"来使用。elseif 语句的语法格式如下:
在上面的 elseif 的语法当中,如果判断第一 个 “表达式 1”为 TRUE,则执行“语句块 1”的语句;如果判断第二个‘表达式 2” 为 TRUE,则执行“语句块 2”的语句:以此类推,判断第 n 个“表达式 n”为 TRUE,则执行“语句块 n”的语句;如果表达式的条件都不为 TRUE,则执行 else 子语中的‘语句块 n+1” 的语句,当然最后的 else 语句也可以省略。在 elseif 语句中同时只能有一个表达式为 TRUE,即在 elseif 语句中只能有一个语句块被执行,即多个 elseif 从句是排斥关系。
编程实践
在应用开发中,这种多向条件分支结构适合对同一个变量的值在不同范围内进行判断。比如下面分时问候的代码,通过获取服务器中当前的时间,在不同的时间段输出不同的问候。在实际的运用中,我们可以用于网站中,在用户登录后的问候功能,或者可做成报时系统:
执行结果:
注:写多条件分支语句时,一定要注意条件的排列的顺序,避免陷入条件穿透的陷阱
使用 elseif 语句有一条基本规则, 即总是优先把包含范围小的条件放在前面处理。比如:$hour<6 和 $hour<10 两个条件,明显 $hour<6 的范围更小,所以应该先处理 $hour<6 的情况。和前面的 if 语句一样,使用 elseif 语句控制是否执行一条语句,可以使用花括号括起来,也可以不用。但要想使用 elseif 语句能够控制是否执行多条语句,则必须使用花括号括起来形成代码块。通常建议不要省略 if、else、 elseif 后执行块的花括号,即使条件执行体只有一行代码。 因为保留花括号会有更好的可读性,而且会减少发生错误的可能。
版权声明: 本文为 InfoQ 作者【迷彩】的原创文章。
原文链接:【http://xie.infoq.cn/article/e24eefd19ce3e7aba08508713】。文章转载请联系作者。
评论