当前位置: 首页 > news >正文

【PHP 流程控制完全指南】

PHP 流程控制完全指南


🧠 一、什么是流程控制?

在编程中,流程控制是指控制程序执行顺序的语句。它决定了代码是“从上往下执行”,还是“根据条件跳转”,或者“循环执行某些代码”。

PHP 中的流程控制语句主要包括:

  • 循环结构whiledo-whileforforeach
  • 条件结构ifelseelseifswitchmatch
  • 跳转结构breakcontinuegoto

🔁 二、循环结构

1. while 循环

最简单的循环结构,只要条件为 true,就一直执行。

✅ 示例:
$i = 0;
while ($i < 5) {echo $i;$i++;
}
// 输出:01234
📌 特点:
  • 先判断条件,再执行代码块。
  • 如果条件一开始就是 false,则代码块不会执行。

2. do-while 循环

先执行一次,再判断是否继续执行

✅ 示例:
$i = 0;
do {echo $i;$i++;
} while ($i < 5);
// 输出:01234
📌 特点:
  • 至少执行一次代码块。
  • 适合“至少做一次”的场景,比如用户输入验证。

3. for 循环

适合已知循环次数的场景

✅ 示例:
for ($i = 0; $i < 5; $i++) {echo $i;
}
// 输出:01234
📌 三部分说明:
  1. 初始化:$i = 0
  2. 条件判断:$i < 5
  3. 迭代操作:$i++

4. foreach 循环(专为数组设计)

用于遍历数组中的每一个元素

✅ 示例:
$arr = [1, 2, 3, 4];
foreach ($arr as $value) {echo $value;
}
// 输出:1234
🧠 使用引用时注意:
foreach ($arr as &$value) {$value *= 2;
}
unset($value); // ✅ 必须 unset,否则后续循环可能出错

💡 如果不 unset($value)$value 会保留对数组最后一个元素的引用,可能导致后续使用中“意外修改数组”。


🧩 三、条件结构

1. ifelseelseif

基本的条件判断语句

✅ 示例:
$score = 85;
if ($score >= 90) {echo "优秀";
} elseif ($score >= 60) {echo "及格";
} else {echo "不及格";
}

2. switch 判断多个值

适合判断一个变量等于多个值的情况

✅ 示例:
$i = 1;
switch ($i) {case 0:echo "i equals 0";break;case 1:echo "i equals 1";break;default:echo "i 不是 0 或 1";
}
📌 注意:
  • 每个 case 后面要加 break,否则会“贯穿”执行下一个 case
  • default 是可选的,用于处理“都不匹配”的情况。

3. match(PHP 8.0+)

switch 更现代、更安全,返回值形式,像三元表达式一样使用。

✅ 示例:
$i = 1;
$result = match ($i) {0 => "i equals 0",1 => "i equals 1",default => "i 不是 0 或 1",
};
echo $result;
📌 优点:
  • 自动严格比较(===
  • 不允许贯穿(fall-through)
  • 可以直接赋值给变量

🧱 四、跳转结构

1. break

结束当前的 forforeachwhiledo-whileswitch 结构

✅ 示例:
for ($i = 0; $i < 10; $i++) {if ($i == 5) {break;}echo $i;
}
// 输出:01234
📌 可选参数:
break 2; // 跳出两层循环

2. continue

跳过当前循环中剩余的代码,开始下一次循环

✅ 示例:
for ($i = 0; $i < 5; $i++) {if ($i == 2) {continue;}echo $i;
}
// 输出:0134

3. goto

跳转到程序中的某个标签位置

✅ 示例:
goto end;
echo "这段不会执行";
end:
echo "跳转成功!";
📌 注意:
  • 不能跳进 forwhileswitch 等结构中。
  • 可以跳出多重循环,但不建议滥用,容易造成“面条式代码”。

📁 五、文件包含结构

1. include

包含文件,出错时只产生警告,脚本继续执行

✅ 示例:
include 'header.php'; // 如果文件不存在,输出警告,继续执行
echo "继续执行";

2. require

包含文件,出错时产生致命错误,脚本停止执行

✅ 示例:
require 'config.php'; // 如果文件不存在,脚本停止执行
echo "不会执行";

3. include_once / require_once

确保文件只被包含一次,避免重复定义

✅ 示例:
include_once 'functions.php'; // 即使多次调用,也只包含一次

📌 六、总结对比表

结构用途是否返回值是否可跳出是否可跳过当前循环
while条件循环✅ (break)✅ (continue)
do-while先执行后判断
for已知循环次数
foreach遍历数组
if / else / elseif条件判断
switch多值判断
match多值匹配(PHP 8+)
break结束循环或 switch
continue跳过当前循环
goto跳转到标签
include包含文件
require必须包含文件
http://www.dtcms.com/a/291339.html

相关文章:

  • 多端适配灾难现场:可视化界面在PC/平板/大屏端的响应式布局实战
  • .NET依赖注入IOC你了解吗?
  • 开发避坑短篇(3):解决@vitejs plugin-vue@5.0.5对Vite^5.0.0的依赖冲突
  • 万界星空科技锂电池MES解决方案
  • Shell判断结构
  • voice模块
  • 【图论】CF——B. Chamber of Secrets (0-1BFS)
  • 标准文件I/O补充知识
  • paddleocr安装,数据集制作,训练自己的模型,调用训练好的模型
  • 20250721-day19
  • 【PTA数据结构 | C语言版】双连通分量
  • C# 实现:动态规划解决 0/1 背包问题
  • nextjs编程式跳转
  • 《小白学习产品经理》第七章:方法论之波特五力模型
  • springcloud -- 微服务02
  • Iridium Certus 9704 卫星物联网开发套件
  • cuda编程笔记(9)--使用 Shared Memory 实现 tiled GEMM
  • 补环境基础(二) this的作用和绑定规则
  • 关于Ajax的学习笔记
  • synchronized 修饰符的使用
  • (7)ROS2-MUJOCO联合仿真环境迁移优化
  • MVCC 多版本并发控制 详解
  • C语言(20250721)
  • 【PTA数据结构 | C语言版】验证六度空间理论
  • day20-sed-find
  • 【学习路线】C#企业级开发之路:从基础语法到云原生应用
  • 感知机-梯度下降法
  • 代码随想录day41dp8
  • 教资科三【信息技术】— 学科知识: 第三章(多媒体技术)
  • Java I/O模型深度解析:BIO、NIO与AIO的演进之路