【web 开发基础】PHP的流程控制之单一分支结构-PHP 快速入门(12)

简介: 流程控制对于任何一门编程语言来说都是至关重要的,它提供了控制程序步骤的基本手段,是程序的核心部分。可以说,缺少了流程控制,就不会有程序设计语言,因为没有哪一种程序只是线性的执行语句序列。程序中需要与用户相互交流,需要根据用户的输入决定执行语句序列,需要有循环将代码反复执行等操作。这些都少不了流程控制。在任何程序设计语言中都需要支持满足程序结构化所需要的三种基本结构:顺序结构、分支结构、和循环结构;没有这些流程控制,编程会变得更加机械,犹如人没有了灵魂。

前言

流程控制对于任何一门编程语言来说都是至关重要的,它提供了控制程序步骤的基本手段,是程序的核心部分。可以说,缺少了流程控制,就不会有程序设计语言,因为没有哪一种程序只是线性的执行语句序列。程序中需要与用户相互交流,需要根据用户的输入决定执行语句序列,需要有循环将代码反复执行等操作。这些都少不了流程控制。在任何程序设计语言中都需要支持满足程序结构化所需要的三种基本结构:顺序结构、分支结构、和循环结构;没有这些流程控制,编程会变得更加机械,犹如人没有了灵魂。

何为分支结构?

顺序结构的程序虽然能解决计算、输出等问题。当是不能先做判断在选择。对于要先做判断再选择的问题就要使用分支结构,又称为选择结构或条件结构。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序执行。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。分支语句结构适合带有逻辑或关系比较等条件判断的计算。即是程序在执行过程中依照条件的结果来改变程序执行的顺序。满足条件时执行某一叙述块,反之则执行另一叙述块。在程序中使用分支结构可以有以下几种形式:

  1. 单一条件分支结构
  2. 双向条件分支结构
  3. 多向条件分支结构
  4. 巢状条件分支结构

以上4种分支结构都是对条件进行判断,然后根据判断结果,选择执行不同的分支。但是要根据程序的不同需求和不同时机,选择以上不同形式的分支结构使用。每种分支结构都是通过相应的PHP语句来完成的。

单一条件分支结构 (if)

if分支结构是单一 条件分支结构。 PHP程序中的语句通常是按其在源代码文件中出现的顺序从前到后依次执行的。而if 结构用于改变语句的执行顺序,是包括PHP在内的很多语言最重要的特性之一。 if语句的基本格式是,对一个表达式进行计算,根据计算结果决定是否执行后面的语句。if语法的格式如下:

网络异常,图片无法展示
|

if(表达式){ //如果在后面加上分号会出现错误
  语句块; //条件成立要执行的语句
}

在上面的if语句的格式中,允许按照条件执行代码片段。if 后面小括号( )中的“表达式” 就是执行的条件,条件只能是布尔型值。通常是由比较运算符或者逻辑运算符组成的表达式所计算的结果值,或是一些返回布尔型的函数等等。如果是传入其他类型的值,也会自动转换为布尔型的TRUE或FALSE,再进行判断。如果“表达式”为TRUE,则执行“语句块”,否则不执行。不论结果如何,接着都将执行if后面的语句。可以这么说,是否执行“语句块”取决于“表达式”的结果。“if (表达式)和语句块;”一起组成 了完整的if语句,它们并非两条独立的语句,而是一个整体或者组合。下面例子中就是if结构的简单使用。如果$a大于$b,将显示“a大于b”,否则没有任何输出。

<?php$a=12;
$b=3;
if($a>$b){  //当下面只有一句代码时,花括号可以省略,但是养成好习惯,尽量带上花括号,以免出现未知错误echo'$a 大于 $b';
}

执行结果:

网络异常,图片无法展示
|

通过使用复合语句(代码块), if语句能够控制执行多条语句。代码块是一组用花括号"{ }”括起来的多条语句。任何可以使用单条语句的地方都可以使用语句块。因此,可以像下面这样编写语句:

<?phpif(表达式) {
//如果表达式的条件成立则可以执行下面多条语句语句1;
语句2;
语句n;
}

如果使用if分支语句控制是否执行单条语句, 可以使用花括号括起来,也可以不用。但要想使用if语句控制是否执行多条语句,就必须使用花括号括起来形成代码块。比如:已知两个数$a和$b,比较它们的大小,使得$a大于$b;若$a小于$b则调换其值,代码如下:

<?php$a=12;
$b=30;
if($a<$b){  //当下面只有一句代码时,花括号可以省略,但是养成好习惯,尽量带上花括号,以免出现未知错误$temp=$a;
$a=$b;
$b=$temp;
}
print_r($a>$b);//打印结果

执行结果:boolean类型中1代表true,0为false

网络异常,图片无法展示
|

在实际开发中我们也会使用三元运算符来代替if,让代码变得更加简洁,不过在复杂的条件可能让代码可读性变差,下面就以求最小值为例使用三元运算和if分支语句进行对比.代码如下:

<?php$a=122;
$b=30;
if($a<$b){
$d=$a;
}
$d=$b;
print_r($d);//打印结果echo"<br>";//换行//三元运算符$c=$a<$b?$a : $b;
print_r($c);//打印结果   如果只需要打印结果可直接写成:print_r($a < $b? $a : $b);

执行结果:

网络异常,图片无法展示
|

目录
相关文章
|
6天前
|
XML 安全 PHP
PHP与SOAP Web服务开发:基础与进阶教程
本文介绍了PHP与SOAP Web服务的基础和进阶知识,涵盖SOAP的基本概念、PHP中的SoapServer和SoapClient类的使用方法,以及服务端和客户端的开发示例。此外,还探讨了安全性、性能优化等高级主题,帮助开发者掌握更高效的Web服务开发技巧。
|
18天前
|
开发框架 自然语言处理 PHP
PHP在Web开发中的持久魅力与创新实践###
【10月更文挑战第17天】 本文探讨了PHP作为一门老牌却充满活力的编程语言,在现代Web开发中的独特优势和未来趋势。通过分析其简洁性、灵活性、强大生态系统及不断创新的特性,本文旨在揭示PHP为何能持续吸引开发者,并在技术快速迭代的时代保持竞争力。同时,文章也展望了PHP在未来Web开发领域的发展潜力,强调其在技术创新和社区支持下,依然能够引领Web开发的新潮流。 ###
32 9
|
12天前
|
SQL 安全 Go
PHP在Web开发中的安全实践与防范措施###
【10月更文挑战第22天】 本文深入探讨了PHP在Web开发中面临的主要安全挑战,包括SQL注入、XSS攻击、CSRF攻击及文件包含漏洞等,并详细阐述了针对这些风险的有效防范策略。通过具体案例分析,揭示了安全编码的重要性,以及如何结合PHP特性与最佳实践来加固Web应用的安全性。全文旨在为开发者提供实用的安全指南,帮助构建更加安全可靠的PHP Web应用。 ###
29 1
|
10天前
|
关系型数据库 API PHP
PHP在Web开发中的优势与实践###
【10月更文挑战第24天】 PHP是一种流行的服务器端脚本语言,特别适合Web开发。其简单易学、灵活性高和广泛应用的特点,使其成为众多开发者的首选。本文将探讨PHP在Web开发中的主要优势及其实际应用,通过实例展示如何使用PHP构建高效、可靠的Web应用。无论你是初学者还是有经验的开发者,这篇文章都将提供有价值的见解和实用技巧。 ###
17 0
|
24天前
|
安全 编译器 API
探索PHP 8的新特性及其对现代Web开发的影响
探索PHP 8的新特性及其对现代Web开发的影响
14 0
|
26天前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
86 3
|
8天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
84 44
|
4天前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
13 1
|
9天前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
26 2
WK
|
9天前
|
安全 Java 编译器
C++和Java哪个更适合开发web网站
在Web开发领域,C++和Java各具优势。C++以其高性能、低级控制和跨平台性著称,适用于需要高吞吐量和低延迟的场景,如实时交易系统和在线游戏服务器。Java则凭借其跨平台性、丰富的生态系统和强大的安全性,广泛应用于企业级Web开发,如企业管理系统和电子商务平台。选择时需根据项目需求和技术储备综合考虑。
WK
10 0