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

php基础-流程控制(第12天)

流程控制

一.流程控制做什么用的?

流程控制,代表执行的方向

在 PHP 里,流程控制就是决定代码执行顺序和方向的“交通灯”,没有它,程序只能从上往下死板执行

  • 控制代码的执行方向

  • 根据条件选择不同的分支

  • 根据循环结构重复执行某些代码

  • 在需要的时候跳出、终止或跳转执行

二.有哪几种如何分类?

2.1 按程序逻辑角度(宏观分类)

这是“程序设计最基本的控制结构”的分类方法,也是理论上最核心的三种模式:

2.1.1顺序结构
  • 默认从上到下执行代码。
  • 代码从上往下,顺序执行(代码执行的最基本结构)
  • 示例:
echo "开始\n";
echo "处理中\n";
echo "结束\n";
2.1.2分支结构(选择结构)
  • 根据条件判断执行不同的分支。
  • 给定一个条件,同事有多重可执行代码块,然后根据条件执行某一段代码
  • 示例:
$score = 80;
if ($score >= 60) {echo "及格";
} else {echo "不及格";
}
2.1.3循环结构
  • 重复执行某段代码,直到条件不满足。
  • 在某个条件控制范围内,指定的代码(块)可以重复执行
  • 示例:
for ($i=1; $i<=3; $i++) {echo "第 $i 次循环\n";
}

这一分类强调逻辑流程:程序走直线、岔路口,或者在原地绕圈。


2.2 按语法形式(具体实现)

这是实际编程中用到的具体语句分类:

2.2.1 条件分支语句
  • if / else
  • if / elseif / else
  • switch
2.2.2 循环语句
  • while
  • do...while
  • for
  • foreach
2.2.3 跳转控制语句
  • break → 跳出循环或 switch
  • continue → 跳过本次循环,进入下一次
  • exit / die → 终止脚本执行
  • goto → 直接跳转到指定标签(少用)

这一分类强调实际语法层面,程序员写代码时直接用到。


2.2.4

2.3 结合角度理解

  • 顺序结构 = 默认路线,代码一行行走下去
  • 分支结构 = “岔路口”,根据条件走不同分支
  • 循环结构 = “旋转木马”,原地重复执行
  • 跳转控制 = “刹车/换轨道”,调整执行流

三.流程控制的代替语法

HTML 中可以直接用 <?php ... ?> 包裹 PHP 代码,然后根据条件或循环输出不同内容。

1. 顺序结构(默认执行)

<!DOCTYPE html>
<html>
<body>
<h1>欢迎</h1>
<p><?php echo "今天是 " . date("Y-m-d"); ?></p>
</body>
</html>
  • 这里的 PHP 是顺序执行的,先输出日期,再显示 HTML 结构。

2. 条件分支(显示不同内容)

<?php $age = 20; ?>
<p><?php if ($age >= 18): ?>成年人<?php else: ?>未成年人<?php endif; ?>
</p>
  • if: ... endif; 是 PHP 提供的在 HTML 中书写条件分支的语法糖,更适合模板嵌入。
  • 也可以用三元运算符:
<p><?= $age >= 18 ? "成年人" : "未成年人" ?></p>

3. 循环(动态生成列表或表格)

<ul>
<?php
$fruits = ["苹果", "香蕉", "橘子"];
foreach ($fruits as $fruit):
?><li><?= $fruit ?></li>
<?php endforeach; ?>
</ul>
  • 输出 <ul> 列表,每个 <li> 由 PHP 循环生成。

4. 跳转控制(中断或跳过)

<?php
$show = false;
if (!$show) {return; // 停止当前模板的执行
}
?>
<p>这里显示的内容只有 $show 为 true 才能看到</p>
  • 在模板中,也可以用 break/continue 控制循环输出。

三.表达式

参考

https://www.php.net/manual/zh/language.expressions.php

3.1. 什么叫“表达式”

  • 表达式就是有值的语句,可以参与计算或赋值。
  • 例如 $a + 5 是表达式,它的值是 $a + 5。
  • 在很多语言里,赋值不一定是表达式,有些语言(早期的 Pascal、VB)赋值只是语句,没有值。

3.2. PHP 的“推进更深远”指什么

PHP 的特点是:几乎所有东西都是表达式,不仅仅是运算或赋值,很多操作都可以作为值参与其他表达式。

  1. 赋值本身是表达式

    $b = $a = 5;  // $a = 5 的表达式值就是 5
    

    你可以把它直接嵌套使用,这在一些语言里做不到。

  2. 函数调用、运算符、甚至 echo(在某些上下文里)都可以作为表达式的一部分使用。

    • $c = strlen("abc") + 5;strlen("abc") 是表达式,有值 3
  3. 三元运算符和逻辑运算的短路返回值

    $result = $a && $b || $c;
    
    • 逻辑运算返回的是布尔值,可以直接参与赋值或函数参数。
  4. 递归与链式赋值

    • $x = $y = $z = someFunction();
    • 这在 PHP 里很自然,因为每一步赋值本身都是表达式,有值可以继续传递。

换句话说,PHP 把“表达式”当作 可随处使用的值 推得比很多语言更彻底,而不是只在运算或赋值时出现。

3.3. 相比 JS 的不同

  • JS 也把赋值、函数调用当表达式,但 PHP 更强调 每个操作几乎都有值,比如你可以写链式赋值、嵌套赋值、嵌套函数赋值,而 PHP 习惯把赋值结果直接用作下一步表达式的值。
  • 在 JS 中某些语句(例如 var x = ...;)更偏向“语句”,不能直接像 PHP 那样嵌套使用(虽然现代 JS 也支持链式赋值)。

3.4总结一句话

“推进得更深远”意思是:PHP 将表达式的概念扩展到几乎所有操作,使赋值、函数调用、运算符、逻辑操作都可以当作值使用,这让程序可以更灵活地组合和嵌套表达式。

http://www.dtcms.com/a/403551.html

相关文章:

  • 怎样建设尧都水果网站网页游戏网站556pk游戏福利平台
  • logo做ppt模板下载网站简历制作官网
  • LeetCode:51.岛屿数量
  • English Around the House and Farm
  • 目标速度估计中MLE和CRLB运用(二)
  • 沈阳网站建设找思路做区位分析的地图网站
  • 莱芜做网站建设的公司seo交流qq群
  • MongoDB Ops Manager部署
  • DecDEC论文精读:动态误差补偿的低比特LLM推理优化方案
  • 面试复习题--Android的前沿技术
  • 江苏省建设职业中心网站工程招标信息在哪看
  • Go语言环境安装
  • AI-调查研究-86-交感神经 副交感神经 自主神经系统的平衡之道:交感与副交感的利弊解析
  • 重构华尔街交易室:基于大模型的多智能体协作交易系统TradingAgents深度技术解析
  • 每天五分钟深度学习:基于训练集、验证集、测试集迭代模型
  • arXiv 2025 | 多尺度线性注意的混合CNN-Transformer医学分割网络,即插即用,涨点起飞!
  • 青岛北京网站建设公司wordpress 即时联系
  • SpringBoot结合PostGIS在省级旅游口号管理中的应用实践
  • RedisFront:一款免费开源的跨平台Redis客户端工具
  • 数据中心网络架构的“南北向”和“东西向”
  • 法律网站的建设流程免费模板素材软件
  • 支持17种方言10种外语!阿里最新AI语音合成模型Qwen3-TTS-Flash震撼发布
  • Apache Doris性能优化全解析:慢查询定位与引擎深度调优
  • 境外电商网站建设崇州网站建站
  • 可学习性(Learnability)条件:什么样的学习问题是有解的?
  • 动态规划算法初识--斐波那契数列模型
  • Linux网络:使用UDP实现网络通信(网络套接字的创建绑定)
  • 第一次培训
  • 端侧多模态大模型MiniCPM-V 4.5技术报告解析
  • 【环境配置】macbook 配置环境变量