【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在现代Web开发中的角色与挑战
【8月更文挑战第16天】随着互联网技术的飞速发展,PHP作为一门历史悠久的服务器端脚本语言,其在现代Web开发中的地位和作用正经历着重要的转变。本文将探讨PHP在面对新兴技术挑战时如何保持其相关性,以及开发者社区如何通过创新来应对这些挑战,从而确保PHP继续在动态变化的Web开发领域中发挥关键作用。
|
4天前
|
前端开发 JavaScript PHP
PHP在现代Web开发中的角色与挑战
【8月更文挑战第16天】随着互联网技术的飞速发展,PHP作为一门历史悠久的服务器端脚本语言,在现代Web开发中扮演着不可或缺的角色。本文将探讨PHP在面对新兴技术挑战时的地位、优势以及面临的主要问题,同时展望未来PHP可能的发展方向。文章旨在为读者提供一个关于PHP当前状况及未来展望的全面视角。
|
3天前
|
安全 JavaScript 前端开发
PHP 在现代Web开发中的角色与挑战
【8月更文挑战第17天】本文将探讨PHP语言在当前Web开发领域的地位,分析其面临的技术挑战及发展趋势。我们将通过比较PHP与其他编程语言的优缺点来了解它的独特之处,并展望PHP在未来Web开发中的可能方向。
20 10
|
1天前
|
前端开发 JavaScript 安全
PHP在现代Web开发中的角色与挑战
【8月更文挑战第18天】随着互联网技术的飞速发展,PHP作为一门历史悠久的服务器端脚本语言,一直在Web开发领域占据着举足轻重的地位。然而,面对新兴的语言和技术,PHP也遭遇了前所未有的挑战。本文将探讨PHP在现代Web开发中的角色定位、面临的挑战以及未来发展的可能性,旨在为PHP开发者提供行业洞察,并鼓励对PHP的持续关注和创新。
|
1天前
|
编译器 PHP 开发者
PHP在现代Web开发中的角色与影响
【8月更文挑战第18天】本文深入探讨了PHP作为一门服务器端脚本语言,在现代Web开发中所扮演的角色以及它所带来的深远影响。文章首先回顾了PHP的发展历程,随后详细分析了PHP在Web开发中的应用优势和面临的挑战,并讨论了PHP与其他编程语言的关系及其在现代Web开发趋势中的位置。最后,文章展望了PHP的未来发展趋势,为读者提供了对PHP在Web开发中的全面了解。
|
5天前
|
存储 SQL PHP
Ctfshow web入门 PHP特性篇 web89-web151 全(三)
Ctfshow web入门 PHP特性篇 web89-web151 全(三)
10 2
|
5天前
|
JSON PHP Apache
[GFCTF 2021]Baby_Web(CVE-2021-41773) 从一道题入门PHP代码审计 (保姆级)
[GFCTF 2021]Baby_Web(CVE-2021-41773) 从一道题入门PHP代码审计 (保姆级)
8 1
|
6天前
|
JavaScript 前端开发 安全
PHP在现代Web开发中的角色与挑战
【8月更文挑战第14天】 本文将深入探讨PHP作为一门历史悠久的编程语言,在现代Web开发中所扮演的角色以及面临的挑战。随着技术的发展和新兴编程语言的涌现,PHP的地位似乎受到了挑战。然而,通过对其生态系统、性能优化、安全性及未来发展方向的分析,我们可以更加全面地理解PHP的现状和潜力。文章将从PHP的历史贡献出发,分析其在现代Web开发中的应用情况,进而讨论PHP社区如何应对新的技术挑战,并展望PHP的未来。
|
1天前
|
SQL 安全 编译器
探索PHP的现代演进:从Web 1.0到7.x
在数字时代的浪潮中,PHP作为一门历史悠久的编程语言,经历了从简单的个人网页脚本工具到强大的服务器端开发语言的华丽转变。本文将带领读者穿越时间的长河,一探PHP如何适应现代Web开发的需要,特别是在性能、安全性和易用性方面的重大改进,以及这些变化给开发者带来的启示。
|
4天前
|
缓存 安全 编译器
探索PHP 8的新特性:提升现代Web开发的效率与性能
PHP 8的推出标志着这个流行的服务器端脚本语言迈入了一个新的时代。本文将深入探讨PHP 8中引入的一些关键新特性,包括JIT编译器、联合类型、命名参数、弱引用等,并解释这些特性如何为开发者提供更高效的编程工具和改进的性能。我们将通过实际代码示例来展示这些新特性的应用,帮助读者理解如何利用PHP 8来构建更快、更可靠、更易于维护的Web应用。
9 0