0

0

PHP基础教程四之流程控制

黄舟

黄舟

发布时间:2017-03-01 09:35:13

|

1605人浏览过

|

来源于php中文网

原创

本节讲解的内容

前言

PHP的流程控制和别的语言很相似,都是分为好多情况,我们读懂了代码的流程,就大致读懂了代码的思想,初步理解了代码的作用以及会出现什么结果。php的流程大致分为两种,顺序流程,分支流程,循环流程。

顺序流程控制

顺序流程说白了就是解析器会照着php的代码,一行一行的进行解析;

如果我们的php代码中,没有任何的流程控制语句,那么我们的php代码就会顺序执行. .

$a = 12;
$b = 13;
$c = 15;
$res = $a + $b * $c;
echo $res;

像上面的代码,解析器就会一行行的进行解析,执行。

分支流程控制

分支流程就是在我们的代码出现某种情况时,才会执行的代码。比如说符合某种情况,php中常见的分支有:

  • 单分支

  • 双分支

  • 多分支

单分支

当我们的代码符合某种情况时,执行特定的代码
单分支的语言格式是:

    if(条件表达式){
        //代码块
    }

示例:

 12){//$a符合大于12的条件才会执行下面的这句话

    echo '$a的值大于12
'; } echo '这里是单分支外边'; ......结果..... $a的值大于12 这里是单分支外边

流程图
这里写图片描述

在单分支的if语句中后面是用大括号括起来的。当分支里面的代码执行完毕,解析器会接着解析后面的代码

双分支

大家有没有想过当上面的变量$a不符合条件的时候,难道什么都不做,大多数不是这样的,当if括号的表达式不满足时,我们一般还有处理方案,这就是双分支结构,语言格式

    if(条件表达式){
        //为真时执行的代码
    }else{
        //为假时执行的代码
    }

示例:

$a = 6;
if($a > 12){

    echo '$a的值大于12
'; }else{ echo '$a的值小于12' } echo '这里是单分支外边'; ......结果..... $a的值小于12 这里是单分支外边

流程图:
这里写图片描述

在上面的代码中,当$a不满足大于12时,就会执行else里面的代码,然后才会执行外面的代码。if…else是成对出现的。但是也可以没有else。

当代码中出现多个if…else的时候,他们之间是没有逻辑关系的,执行完一组if之后,就会去执行另外一组if。

多分支

有时候当我们的双分支执行完之后,还有分支需要判断,一直判断下去,这时候就用到多分支。在多分支中 不一定非要有else,else if 这里可以有多个.

基本的语法是:

if(条件表达式){
    语句
}else if(条件表达式){
    语句
}else if(条件表达式){
    语句
}...

示例:

 10){
    echo '$a 大于10';
}else if($a > 2){
    echo '$a 小于等于10并且大于2';
}else{
    echo '$a小于等于2';
}
.....结果......
$a小于等于10并且大于2

流程图:
这里写图片描述

在上面的流程图中可以看到,当$a不大于10的时候才会向下执行,这很重要,然后判断是否大于2,如果后面还有则接着执行下去,直到满足条件。

switch

在上面的if…else中if里面的条件表达式一般是表示范围(也可以表示具体的值 如$a == 2),但是当我们使用多个具体值得时候,上面的代码看上去就会很冗余,这是就要使用到switch,switch也可以说是if…else的另一种写法。

switch 语句类似于具有同一个表达式的一系列 if语句。很多场合下需要把同一个变量(或表达式)与很多不同的值比较,并根据它等于哪个值来执行不同的代码。这正是 switch 语句的用途

switch的基本语法是:

switch(变量/表达式/值){
    case 变量/表达式/值:
        处理语句;
    break;
    case 变量/表达式/值:
        处理语句;
    break;
    case 变量/表达式/值:
        处理语句;
    break;
    default:
        上面的情况都不满足执行的语句;
    break;
}

示例:

流程图:
这里写图片描述

switch语句的思想和if很像,在switch括号里面的值就是我们需要判断的值,我们要判断的值与case后面的值是否一样,一样的话执行case下面的语句,当不一样的时候,执行下一个case语句。注意 case语句后面是一个冒号:;当所有的case执行完之后,都没有符合条件的值,就执行default里面的语句。

在上面我们可以看到在每个case语句的下面都有一个break,这是一个关键字,当解析器遇见break的时候,就会自动的跳出switch,这样后面的case就不会执行。(遇见相同的就不向下执行)。

switch需要注意的地方:

  • 当一个case语句中的值和switch表达式的值匹配时,PHP才开始执行语句。

  • 当执行case语句后,遇见break就退出,但是如果没有break,则一直运行下去,直到遇见break或switch执行结束。

  • defaule里面的语句是它匹配了任何和其他case都不匹配的情况。

    KPPW客客出品专业威客系统
    KPPW客客出品专业威客系统

    客客出品专业威客系统英文名称KPPW,也是keke produced professional witkey的缩写。KPPW是一款基于PHP+MYSQL技术构架的威客系统,积客客团队多年实践和对威客模式商业化运作的大量调查分析而精心策划研发,是您轻松搭建威客网站的首选利器。KPPW针对威客任务和商品交易模式进行了细致的分析,提供完善威客任务流程控制解决方案,并将逐步分享威客系统专业化应用作为我们的

    下载
  • case后面的类型可以使整型,浮点型,字符串,布尔值,array,null,通常情况下,我们一般用整数 或字符串。

循环流程控制

在开发中我们有时会有这样的需求,我们需要打印一句话100次,这时候用单纯的顺序流程控制就会很麻烦,但是也能做,但如果是一万次呢…这时候就需要我们想另一种解决思路,我们能不能利用循环,循环的输出一句话,并且控制循环次数,这样我们就会很顺利的输出我们想要的结果。

for循环结构

for循环在我们的开发中是最常见和最常用到的循环,这种循环是在我们知道循环次数的时候,首选的结构,像上面的一万次,我们已经知道了需要循环一万次。学习for循环最主要的是看懂for循环的执行流程。按着for的执行流程,我们可以清晰的知道for循环是在哪里退出,在哪里需要在循环。

语法结构:

for(循环初始值,循环初始值...;循环条件;增量,增量){
        语句循环体;
}

示例:

for($i = 0; $i < 10; $i++){
    echo '这是for循环
'; } ....结果.... echo 这是for循环(十次);

流程图:
这里写图片描述

在上面的流程图中我们可以看到for循环的执行顺序,for循环只有在为假的时候跳出循环。

for循环的执行顺序:

  1. 先执行变量初始化$a = 0;在整个for循环中,这句话只执行一次。

  2. 判断$a的值是否小于10,如果小于10,执行for循环里面的语句,如果不小于则退出循环。

  3. 当执行完for循环里面的语句,执行增量表达式,$a++(看前面的递增、递减运算符),

  4. 当$a增加1之后再进行条件判断,$a是否小于10,如果小于10,执行for循环里面的语句,如果不小于则退出循环。

  5. 当$a不小于10的时候,直接跳出循环,执行for循环后面的语句。

明白for循环的执行顺序非常重要,可以看着案列,自己动手画一画。

for循环打印99乘法表

for循环是可以嵌套使用的,当进行嵌套的时候,外面的循环执行一次,里面的for循环执行完才执行外面。

'; //一层显示完后,记着换行。
}

结果:
这里写图片描述

99乘法表,按照for循环的流程一步步执行,但是for循环的判断条件需要找准,也就是for循环的循环次数。

while循环结构

当我们的循环次数不能确定的时候,这时候for循环就显得有些无力,这时候我们可以选择while循环。while循环当没有特定条件的时候,就是一个死循环,也就是解析器会一直执行,永远不会停止,所以我们在用while循环的时候,注意while循环跳出循环的条件。

while循环的语法结构:

while(循环条件){
    循环体语句;
}

示例:

';
    $a++;
}
....结果....
echo $a的值是12....

流程图:
这里写图片描述

上面的代码,初始值$a是在while的外面,我们可能不知道需要循环多少次,但是我们知道当$a的值小于20就一直循环,但是我们不能让$a的值不变,如果$a的值不变,while循环就是一个死循环。所以在循环体里面有一个$a的增长语句。

do…while循环控制

do…while和while循环大致一样,但是有一点不同,do…while循环的循环体是在do里面写着,判断条件是在while里面写着,并且do…while不管是否满足while里面的条件,都会执行一次do里面的循环体。

do...while语法结构:

do{
    循环体语句;
}while(判断条件);

示例:

';
    $a++;
}while($a < 20);

流程图:
这里写图片描述

从流程图中可以看到是先执行循环体,在进行判断。
当不满足条件后跳出循环。

流程控制中用到的关键字

break

break的作用是当满足某种情况时,不想再循环了,跳出当前循环,也就是结束掉当前的循环,不管你有没有满足最初条件,强制退出。
break 可以结束 for, while,do-while 或者 switch 结构的执行 ,同时break 可以接受一个可选的数字参数来决定跳出几重循环(用于多重循环)。

示例:

';
}

结果:
这里写图片描述

流程图:
这里写图片描述

从结果中可以看到,当$i的值等于5的时候,就break,跳出循环,所以输出语句输出了5句。

continue

continue在循环结构中用来跳过本次循环,然后接着进行判断是否满足条件。注意:是跳出单次循环,而break是跳出整个循环结构。
continue 可接受一个可选的数字参数来决定跳过几重循环到循环结尾

示例:

';
}

结果:
这里写图片描述

流程图:
这里写图片描述

在流程图中可以看到当满足$i == 5的时候,continue跳出本次循环,这时下面的输出就不能输出,所以看到在结果中没有输出$i == 5这种情况。

goto

goto操作符可以用来跳转到程序中的另一位置。该目标位置可以用目标名称加上冒号来标记。

示例:

可以看到其中一个输出语句没有输出,这是因为goto跳转到了A这个位置,注意A后面是一个冒号:
同时goto可以使用在循环中,这样也可以跳出循环。
使用注意事项:

  1. 使用注意事项: PHP中的goto有一定限制,只能在同一个文件和作用域
    中跳转,也就是说你无法跳出一个函数或类方法,也无法跳入到另一个函数。

  2. 常见的用法是用来跳出循环或者switch,可以代替多层的break

总结

流程控制,在开发中不可避免的,我们写的代码总是在流程控制中执行,明白了PHP的流程控制也就明白了代码的整体框架。同时for循环while循环等自己可以进行加深,不管什么编程语言,只有自己不停地敲代码才会明白其中的道理。所以要多敲代码,多练习。

 以上就是PHP基础教程四之流程控制的内容,更多相关内容请关注PHP中文网(www.php.cn)!

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java编译相关教程合集
Java编译相关教程合集

本专题整合了Java编译相关教程,阅读专题下面的文章了解更多详细内容。

5

2026.01.21

C++多线程相关合集
C++多线程相关合集

本专题整合了C++多线程相关教程,阅读专题下面的的文章了解更多详细内容。

0

2026.01.21

无人机驾驶证报考 uom民用无人机综合管理平台官网
无人机驾驶证报考 uom民用无人机综合管理平台官网

无人机驾驶证(CAAC执照)报考需年满16周岁,初中以上学历,身体健康(矫正视力1.0以上,无严重疾病),且无犯罪记录。个人需通过民航局授权的训练机构报名,经理论(法规、原理)、模拟飞行、实操(GPS/姿态模式)及地面站训练后考试合格,通常15-25天拿证。

7

2026.01.21

Python多线程合集
Python多线程合集

本专题整合了Python多线程相关教程,阅读专题下面的文章了解更多详细内容。

1

2026.01.21

java多线程相关教程合集
java多线程相关教程合集

本专题整合了java多线程相关教程,阅读专题下面的文章了解更多详细内容。

2

2026.01.21

windows激活码分享 windows一键激活教程指南
windows激活码分享 windows一键激活教程指南

Windows 10/11一键激活可以通过PowerShell脚本或KMS工具实现永久或长期激活。最推荐的简便方法是打开PowerShell(管理员),运行 irm https://get.activated.win | iex 脚本,按提示选择数字激活(选项1)。其他方法包括使用HEU KMS Activator工具进行智能激活。

2

2026.01.21

excel表格操作技巧大全 表格制作excel教程
excel表格操作技巧大全 表格制作excel教程

Excel表格操作的核心技巧在于 熟练使用快捷键、数据处理函数及视图工具,如Ctrl+C/V(复制粘贴)、Alt+=(自动求和)、条件格式、数据验证及数据透视表。掌握这些可大幅提升数据分析与办公效率,实现快速录入、查找、筛选和汇总。

6

2026.01.21

毒蘑菇显卡测试网站入口 毒蘑菇测试官网volumeshader_bm
毒蘑菇显卡测试网站入口 毒蘑菇测试官网volumeshader_bm

毒蘑菇VOLUMESHADER_BM测试网站网址为https://toolwa.com/vsbm/,该平台基于WebGL技术通过渲染高复杂度三维分形图形评估设备图形处理能力,用户可通过拖动彩色物体观察画面流畅度判断GPU与CPU协同性能;测试兼容多种设备,但中低端手机易卡顿或崩溃,高端机型可能因发热降频影响表现,桌面端需启用独立显卡并使用支持WebGL的主流浏览器以确保准确结果

9

2026.01.21

github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

7

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 9万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 9.1万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号