今天我们继续读《细说PHP》,第六章,本章主要讲两个部分,流程控制语句,函数。
先来分析流程控制,书中如此描述:流程控制对于任何一门编程语言都至关重要,它提供了控制程序步骤的基本手段,是程序的核心部分。
在任何一门程序设计语言中,都需要支持满足程序结构化所需的三种基本结构:
- 顺序结构:主要是程序自上而下顺序执行。
- 分支结构:可以叫条件结构,会在程序执行中按条件判断来改变程序执行的顺序。
- 循环结构:重复执行程序的操作。
我们一个一个来分析:
顺序结构的语句主要就是赋值、输入/输出等就不多做介绍啦。
分支结构(条件结构)它有几种形式:
- 单一条件分支结构:就是单独的if语句。
- 双向条件分支结构:if语句中包含else子句。
- 多项条件分支结构:在if和else组合中加入了elseif子句(switch也是多项条件分支结构)。
- 巢状条件分支结构:if 语句嵌套,就是在if和else语句块中又包含if语句。
循环结构:php提供了三种循环:
- while循环:条件型循环语句,根据判断条件多布尔值来进行循环控制。
- do-while循环:也是条件型循环语句,它和while区别在于,do-while至少会执行一次(这个php实际应用中很少)。
- for循环:计数型循环语句。
不得不提一下,while和for虽然是不同的循环语句,但他们可以做相同的事情,只不过在自己的领域里更加高效,这个我们在以后分析php内核机制时候会看到底层他们的处理方式。
下面我们重点来说一下for,因为for在php实际开发中使用很广泛。
for循环由三个表达式组成:
for(初始化;表达条件式;增/减量){ #循环体 }
( 不写花括号php也会识别到,但建议还是写上,代码规范一些 )
- 初始化:第一次进入循环时,变量的初始赋值。
- 条件表达式:判断条件是否结束循环。
- 增/减量:执行完循环体之后根据控制循环变量的增减方式。
( for语句中的三个表达式,可以是一个多个或者是空的,具体可以自己写代码测试一下 )
php还有特殊的控制语句
- break终止循环,continue跳过循环他们是在循环体内使用。
- exit常被用于断点调试,作用是终止脚本执行。
php中这些流程控制语句不是彼此独立的,他们一般都是相互配合使用,互相嵌套,来完成实现程序的目的。
但随着业务的增加,编程量变大,程序结构重复性增多,这样造成了开发和维护成本,解决这个问题是将php设计成模块化结构,就是函数。
php本身就有很多内置函数,同时支持扩展,可以编写php扩展进行编译之后使用。
我们主要来说php自定义函数,也是实际开发中最为常用的。
php自定义函数都是独立的,它被用来执行特定的业务,同时具有重用性,可维护性,开发效率高。
函数使用function来声明,可以有0个或多个参数,也可以给参数赋初始化值。
function 函数名(参数0,参数1......参数N,参数=赋值){
#函数体 }
函数的变量使用,有全局变量,局部变量,静态变量。
- 全局变量:也称作外部变量,是定义在函数外部的,函数内部不能直接使用,需要用到global。
- 局部变量:只作用于函数内部。
- 静态变量:属于局部变量的一种,静态变量在函数使用后不被释放。
比较复杂的函数,递归。
递归就是自己调用自己,在函数体内部直接或间接的调用自己。
递归的作用通常被用来处理一些复杂的运算操作,例如,列表,动态树型菜,单遍历目录等。
递归的执行时会附加一个条件判断,判断是否需要执行递归,并在特定条件下终止,并返回上一层。
值得注意的是,使用递归如果诶呦条件判断可能会造成死循环。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231589.html原文链接:https://javaforall.net
