【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);

执行结果:

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

目录
相关文章
|
4月前
|
自然语言处理 前端开发 JavaScript
php结构
php结构
55 1
|
5月前
|
SQL 关系型数据库 数据库
优化Web开发流程:Python ORM的优势与实现细节
【10月更文挑战第4天】在Web开发中,数据库操作至关重要,但直接编写SQL语句既繁琐又易错。对象关系映射(ORM)技术应运而生,让开发者以面向对象的方式操作数据库,显著提升了开发效率和代码可维护性。本文探讨Python ORM的优势及其实现细节,并通过Django ORM的示例展示其应用。ORM提供高级抽象层,简化数据库操作,提高代码可读性,并支持多种数据库后端,防止SQL注入。Django内置强大的ORM系统,通过定义模型、生成数据库表、插入和查询数据等步骤,展示了如何利用ORM简化复杂的数据库操作。
106 6
|
6月前
|
设计模式 算法 数据库连接
PHP中的设计模式:如何优化你的代码结构
在本文中,我们将深入探讨PHP中的设计模式。设计模式是解决常见软件设计问题的最佳实践。它们不是具体的代码,而是一种编程经验的总结。掌握设计模式可以帮助你写出更高效、灵活和可维护的代码。本文将介绍几种常见的设计模式,并通过示例展示如何在PHP项目中应用这些模式。无论你是PHP初学者还是有经验的开发者,都能从本文中获得启发和实用的技巧。
|
7月前
|
开发者 Java Spring
JSF 牵手社交登录,如魔法风暴席卷 Web 世界,开启震撼便捷登录之旅!
【8月更文挑战第31天】在互联网时代,便捷登录成为用户的核心需求。社交登录凭借其便捷性、安全性和社交化的特点,在各类Web应用中广泛应用。JavaServer Faces(JSF),作为一款流行的Java Web框架,能够轻松集成社交登录功能,显著提升用户体验。本文详细介绍社交登录的优势,并提供两种JSF集成社交登录的常见方法:一是利用Spring Social等第三方库简化开发;二是自行实现社交登录流程。开发者可根据项目需求选择适合的方案。
76 0
|
7月前
|
数据采集 前端开发 开发者
Angular表单控件详解:掌握模板驱动与响应式表单的精髓,让Web应用中的数据采集工作变得高效又简单,彻底告别繁琐的表单处理流程
【8月更文挑战第31天】表单是 Web 应用的关键组件,用于用户登录、注册及信息提交。Angular 作为成熟前端框架,提供了强大的表单处理功能,包括模板驱动与响应式表单。本文通过技术博客形式,详细介绍这两种表单控件,并提供示例代码,展示如何利用它们简化表单处理流程,提高开发效率。首先介绍简单的模板驱动表单,然后讲解基于 RxJS 的响应式表单,适用于复杂逻辑。通过本文,你将学会如何高效地使用 Angular 表单控件,提升应用的用户体验。
83 0
|
7月前
|
JSON 数据库 开发者
FastAPI入门指南:Python开发者必看——从零基础到精通,掌握FastAPI的全栈式Web开发流程,解锁高效编码的秘密!
【8月更文挑战第31天】在当今的Web开发领域,FastAPI迅速成为开发者的热门选择。本指南带领Python开发者快速入门FastAPI,涵盖环境搭建、基础代码、路径参数、请求体处理、数据库操作及异常处理等内容,帮助你轻松掌握这一高效Web框架。通过实践操作,你将学会构建高性能的Web应用,并为后续复杂项目打下坚实基础。
264 0
|
8月前
|
SQL 关系型数据库 数据库
优化Web开发流程:Python ORM的优势与实现细节
【7月更文挑战第20天】Python ORM,如Django ORM,提升Web开发效率,通过面向对象接口抽象数据库操作,简化SQL,增强代码可读性,并确保安全。Django中,定义Model对应数据库表,使用`makemigrations`和`migrate`创建表,实例化Model并调用`save()`保存数据,`objects.all()`和`filter()`查询数据,更新和删除数据涉及字段修改和调用`save()`或直接`delete()`。ORM提供数据库无关性,防止SQL注入,是现代Web开发的强大工具。
68 1
|
9月前
|
Java Maven 容器
快速入门Web开发(下)(2)
快速入门Web开发(下)(2)
42 2
|
8月前
|
Web App开发
软件开发常见流程之移动端调试方法,利用Chrome(谷歌浏览器)的模拟手机调试,搭建本地Web服务器,手机和服务器在一个局域网,通过手机访问服务器,使用服务器,利用ip实现域名访问
软件开发常见流程之移动端调试方法,利用Chrome(谷歌浏览器)的模拟手机调试,搭建本地Web服务器,手机和服务器在一个局域网,通过手机访问服务器,使用服务器,利用ip实现域名访问
|
9月前
|
SQL JSON 前端开发
快速入门Web开发(下)(1)
快速入门Web开发(下)(1)
48 0