读书篇:《细说PHP》三、PHP的语言结构

读书篇:《细说PHP》三、PHP的语言结构今天我们继续读 细说 PHP 第六章 本章主要讲两个部分 流程控制语句 函数 先来分析流程控制 书中如此描述 流程控制对于任何一门编程语言都至关重要 它提供了控制程序步骤的基本手段 是程序的核心部分 在任何一门程序设计语言中 都需要支持满足程序结构化所需的三种基本结构 顺序结构 主要是程序自上而下顺序执行 分支结构 可以叫条件结构 会在程序执行中按条件判断来改变程序执行的顺序 循环结构 重复执行程序的操作 我们一个一个来分析 顺序结构的语句主要就是赋值 输入 输出等就不多做介绍啦

今天我们继续读《细说PHP》,第六章,本章主要讲两个部分,流程控制语句,函数。

先来分析流程控制,书中如此描述:流程控制对于任何一门编程语言都至关重要,它提供了控制程序步骤的基本手段,是程序的核心部分。

在任何一门程序设计语言中,都需要支持满足程序结构化所需的三种基本结构:

  • 顺序结构:主要是程序自上而下顺序执行。
  • 分支结构:可以叫条件结构,会在程序执行中按条件判断来改变程序执行的顺序。
  • 循环结构:重复执行程序的操作。

我们一个一个来分析:

顺序结构的语句主要就是赋值、输入/输出等就不多做介绍啦。

分支结构(条件结构)它有几种形式:

  1. 单一条件分支结构:就是单独的if语句。
  2. 双向条件分支结构:if语句中包含else子句。
  3. 多项条件分支结构:在if和else组合中加入了elseif子句(switch也是多项条件分支结构)。
  4. 巢状条件分支结构:if 语句嵌套,就是在if和else语句块中又包含if语句。

循环结构:php提供了三种循环:

  1. while循环:条件型循环语句,根据判断条件多布尔值来进行循环控制。
  2. do-while循环:也是条件型循环语句,它和while区别在于,do-while至少会执行一次(这个php实际应用中很少)。
  3. for循环:计数型循环语句。

不得不提一下,while和for虽然是不同的循环语句,但他们可以做相同的事情,只不过在自己的领域里更加高效,这个我们在以后分析php内核机制时候会看到底层他们的处理方式。

下面我们重点来说一下for,因为for在php实际开发中使用很广泛。

for循环由三个表达式组成:

 for(初始化;表达条件式;增/减量){ #循环体 } 

不写花括号php也会识别到,但建议还是写上,代码规范一些

  • 初始化:第一次进入循环时,变量的初始赋值。
  • 条件表达式:判断条件是否结束循环。
  • 增/减量:执行完循环体之后根据控制循环变量的增减方式。

( for语句中的三个表达式,可以是一个多个或者是空的,具体可以自己写代码测试一下 )

php还有特殊的控制语句

  1. break终止循环,continue跳过循环他们是在循环体内使用。
  2. exit常被用于断点调试,作用是终止脚本执行。

php中这些流程控制语句不是彼此独立的,他们一般都是相互配合使用,互相嵌套,来完成实现程序的目的。

但随着业务的增加,编程量变大,程序结构重复性增多,这样造成了开发和维护成本,解决这个问题是将php设计成模块化结构,就是函数。

php本身就有很多内置函数,同时支持扩展,可以编写php扩展进行编译之后使用。

我们主要来说php自定义函数,也是实际开发中最为常用的。

php自定义函数都是独立的,它被用来执行特定的业务,同时具有重用性,可维护性,开发效率高。

函数使用function来声明,可以有0个或多个参数,也可以给参数赋初始化值。

 function 函数名(参数0,参数1......参数N,参数=赋值){ 
    #函数体 } 

函数的变量使用,有全局变量,局部变量,静态变量。

  • 全局变量:也称作外部变量,是定义在函数外部的,函数内部不能直接使用,需要用到global。
  • 局部变量:只作用于函数内部。
  • 静态变量:属于局部变量的一种,静态变量在函数使用后不被释放。

比较复杂的函数,递归

递归就是自己调用自己,在函数体内部直接或间接的调用自己

递归的作用通常被用来处理一些复杂的运算操作,例如,列表,动态树型菜,单遍历目录等。

递归的执行时会附加一个条件判断,判断是否需要执行递归,并在特定条件下终止,并返回上一层。

值得注意的是,使用递归如果诶呦条件判断可能会造成死循环。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231589.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 微信小程序——图片识别

    微信小程序——图片识别我的微信小程序期末大作业——基于百度大脑API的图片识别小程序具体实现了动物识别、植物识别、车辆识别三个功能实验源码已经放到了我的GitHub,欢迎测试修改下面给大家分享该项目的实验报告????目录1概述1.1课程大作业目的与要求1.2课程大作业简介2设计思路2.1图片识别API2.2微信小程序UI框架3设计方案4设计过程4.1百度开放平台注册4.2获取asscee_…

    2022年6月29日
    92
  • sshfs 挂载_cifs挂载

    sshfs 挂载_cifs挂载1.安装软件sudoapt-getinstallsshfsfusemount2.实例操作在此实例中,我们需要将远程主机”192.168.1.218″上的“/home”挂载到本地系统的“/mnt/server218”下,我们已经具备了挂载前的一切必须条件:拥有”192.168.1.218″的账号“human”和密码,并且218主机提供了ssh访问。新建目录“

    2025年8月1日
    5
  • C++11新特性之nullptr

    C++11新特性之nullptrC 11 新特性之 nullptr

    2025年7月12日
    6
  • 免费的API接口_api平台

    免费的API接口_api平台转:https://blog.csdn.net/qq_35304570/article/details/79811226声明:整理记录,自己开发过程使用,请勿用做非法途径!参考:http://developer.51cto.com/art/201412/458778.htm豆瓣:https://api.douban.com/v2/book/search?q="百年孤独" …

    2022年9月27日
    3
  • 极限定义理解「建议收藏」

    极限定义理解「建议收藏」(ε,δ)语言:在微积分中,(ε,δ)极限的定义(极限的“epsilon-delta定义”)是极限概念的形式化。极限定义:槽点:为什么需要领域的概念?如果没有领域而使用函数定义域的话,会导致极限不存在,极限存在只有在左极限和右极限存在且相等之下。为什么要去心?我们所说的是无限接近,无限逼近的意思,则该点c去心。ε,δ在描述极限中到底是什么角色?在上述极限的定义中,ε:表示f(…

    2022年4月29日
    245
  • mysql phpmyadmin配置_phpmyadmin 配置方法与安装教程[通俗易懂]

    mysql phpmyadmin配置_phpmyadmin 配置方法与安装教程[通俗易懂]今天我们来看看phpmyadmin配置教程吧,也可以叫做phpmyadmin安装吧,安装我就不说了,你直接到网上下载一个phpmyadmin包解压到你的站点目录,就行了.下面我们来看个简单的例子吧.安装目录:/admin/好了我们现在打开我们刚才解压的文件夹找到config.sample.inc.php把它改名为config.inc.php下面我们就打开这个文件.找到$cfg[‘PmaAbs…

    2022年5月6日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号