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

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

时间:2023-04-06 22:33:01浏览次数:82  
标签:语句 web 14 hour echo else elseif PHP 表达式

多向条件分支结构(elseif)

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

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

<?php
if(表达式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 "夜里好!不早了,该睡了哦!";
    }

执行结果:

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

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

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

标签:语句,web,14,hour,echo,else,elseif,PHP,表达式
From: https://blog.51cto.com/micai01/6174229

相关文章

  • 华硕 ASUS-PRIME-B560M-A Intel Core i5-11400黑苹果efi引导文件
    原文来源于黑果魏叔官网,转载需注明出处。(下载请直接百度黑果魏叔)硬件型号驱动情况主板ASUS-PRIME-B560M-A处理器IntelCorei5-11400已驱动内存16GBDDR43200Mhz已驱动硬盘WesternDigitalBlackSN750500GB已驱动显卡SAPPHIREPULSERX5600XT6GB已驱动声卡ALC897已驱动网卡I......
  • webpack 学习笔记1(入门)
    使用webpack的版本为v4.46.0,改版本为V4的最后一版本,暂时没考虑使用webpack5。#1 安装  [email protected]  [email protected]  翻译搜索复制......
  • 谷歌浏览器插件:FeHelper(WEB前端助手)
    背景在现在的互联网时代,前端开发已经成为一个非常重要的领域。为了提高开发效率和质量,许多前端开发人员都喜欢使用一些相关工具来辅助他们的工作。而谷歌浏览器插件:WEB前端助手(FeHelper)就是其中一个非常受欢迎的选择。FeHelper是什么?FeHelper是一个谷歌浏览器插件,它提供了许......
  • .net webapi 客户端缓存 服务端缓存
    客户端缓存-ResponseCacheAttribute通过设置HTTP的响应头Cache-Control来完成页面存储到浏览器缓存中,如果请求在缓存有效期间就直接从浏览器缓存中取出数据。只需要在接口上方添加ResponseCacheAttribute特性即可设置客户端缓存。ResponseCacheAttribute可应用于:Razor......
  • Websocket保证接收消息完整性
    用springboot起了个websocket服务端,有时候客户端发来的消息过长,无法接收完整,需要进行额外的处理 下面是处理的例子:@ServerEndpoint("/websocket")publicclassWebSocket{@OnMessagepublicvoidonMessage(Sessionsession,byte[]message,booleanlast){......
  • JavaWeb-Cookie-16课-2023-04-06
    packagecom.feijian.servlet;importjavax.servlet.ServletException;importjavax.servlet.http.Cookie;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOExc......
  • 管理WEB服务器文件的WebDAV协议&HTTP大跃进--QUIC与HTTP30&WEB安全攻击概述
    管理WEB服务器文件的WebDAV协议WebADV协议    WEBDAV追加方法  WeDAV请求示例  HTTP大跃进--QUIC与HTTP30 QUIC&HTTP3.0   HTTP2.0的问题队头阻塞建立连接的握手延迟大QUIC的特性0RTT   没有队头阻塞的多路复用 ......
  • Web前端开发必看的100道大厂面试题
    1.说说gulp和webpack的区别开放式题目Gulp强调的是前端开发的工作流程。我们可以通过配置一系列的task,定义task处理的事务(例如文件压缩合并、雪碧图、启动server、版本控制等),然后定义执行顺序,来让Gulp执行这些task,从而构建项目的整个前端开发流程。通俗一点来说,“Gulp就像是一......
  • c#.net怎么实现web端上传超大文件
    ​ASP.NET上传文件用FileUpLoad就可以,但是对文件夹的操作却不能用FileUpLoad来实现。下面这个示例便是使用ASP.NET来实现上传文件夹并对文件夹进行压缩以及解压。ASP.NET页面设计:TextBox和Button按钮。​编辑TextBox中需要自己受到输入文件夹的路径(包含文件夹),通过Button实......
  • WebView 调试方法
    使用 remotedebug-ios-webkit-adapter 工具GitHub地址:https://github.com/RemoteDebug/remotedebug-ios-webkit-adapter安装之后-----浏览器输入:chrome://inspect注:打开该页面有时候需要连接vpn,该页面可以设置端口,与下个步骤的端口要一致下一步,命令行输入:remotedebug_ios_webkit......