0

0

PHP while循环怎么用_PHP while循环实例讲解【教程】

星夢妙者

星夢妙者

发布时间:2026-03-13 09:41:03

|

393人浏览过

|

来源于php中文网

原创

PHP while循环先判断后执行,条件不满足时循环体零次运行;常见错误包括误用赋值与比较、浮点数精度问题及混淆while与do...while的执行时机。

php while循环怎么用_php while循环实例讲解【教程】

PHP while 循环的基本写法和执行逻辑

PHP while 循环不是“先执行再判断”,而是“先判断再执行”——条件不满足时,循环体一次都不会运行。这点和 do...while 有本质区别,也是新手最容易混淆的地方。

常见错误现象:while ($i 却没初始化 <code>$i,导致 Notice: Undefined variable,甚至死循环(如果初始值意外满足条件)。

  • 必须在 while 前显式初始化变量,比如 $i = 0;
  • 循环体内必须有能改变条件变量的语句,比如 $i++$i += 2
  • 条件表达式里避免调用副作用函数(如 file_get_contents()),否则每次判断都触发 IO,性能差还难调试

示例:

$i = 0;
while ($i < 3) {
    echo "第 $i 次<br>";
    $i++; // 忘记这行就卡死
}

什么时候该用 while 而不是 for 或 foreach

while 的核心适用场景是「条件不确定、迭代次数未知」,比如读文件到 EOF、等待外部状态变化、处理队列直到空。

立即学习PHP免费学习笔记(深入)”;

对比来看:for 适合已知范围的数值递增;foreach 专用于遍历数组/对象;而 while 是唯一能自然表达「只要条件成立就继续」的结构。

TTSMaker
TTSMaker

TTSMaker是一个免费的文本转语音工具,提供语音生成服务,支持多种语言。

下载
  • 读取文件逐行处理:while (($line = fgets($fp)) !== false) —— fgets() 返回 false 表示到末尾
  • 数据库分页拉取:while ($rows = $pdo->query("SELECT ... LIMIT 100 OFFSET $offset")->fetchAll()),配合 $offset += 100
  • 避免用 while (true) + break 代替清晰的条件判断,可读性差且易漏退出逻辑

容易被忽略的陷阱:条件判断中的赋值 vs 比较

写成 while ($row = mysqli_fetch_assoc($result)) 是常见且合法的,但前提是理解这是「赋值表达式返回值」作判断——PHP 把赋值结果(即取出的数组或 null)当作布尔值用。

问题在于:如果误写成 while ($row == mysqli_fetch_assoc($result)),不仅逻辑错,还会因反复调用 mysqli_fetch_assoc() 导致跳过数据。

  • 单等号 = 在条件中是允许的,但要确保你真想用赋值结果做判断
  • 混合类型比较要小心:while ($count != 0)while ($count > 0)$count 为负数时行为不同
  • 浮点数慎用 == 判断:while ($x != 1.0) 可能因精度误差永远不终止

与 do...while 的关键区别和选择依据

do...while 至少执行一次循环体,while 可能零次——这个差异直接影响程序是否需要「兜底执行」。

典型使用场景:do...while 多见于需要先生成随机 ID 再检查是否唯一,或命令行交互中先显示菜单再读用户输入。

  • 如果业务逻辑要求「无论如何先试一次」,选 do...while;否则一律用 while
  • do...while 的分号不能漏:} while ($condition);,漏了会语法错误
  • 两者性能无差异,别为了“省一次判断”强行用 do...while 破坏语义清晰性

真正难的是把业务条件准确翻译成循环条件,而不是纠结语法形式。写完多问一句:这个条件在第一次进入前,是不是真的能被可靠评估?

相关文章

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

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

下载

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

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

254

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

1089

2024.03.01

counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

203

2023.11.20

while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

107

2023.09.25

php中foreach用法
php中foreach用法

本专题整合了php中foreach用法的相关介绍,阅读专题下面的文章了解更多详细教程。

267

2025.12.04

fgets在c语言中的用法
fgets在c语言中的用法

本专题整合了c语言中fgets用法介绍,阅读专题下面的文章了解更多详细内容。

17

2025.08.27

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1646

2023.10.23

java中break的作用
java中break的作用

本专题整合了java中break的用法教程,阅读专题下面的文章了解更多详细内容。

120

2025.10.15

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

37

2026.03.12

热门下载

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

精品课程

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

共137课时 | 13.4万人学习

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

共6课时 | 11.3万人学习

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

共13课时 | 1.0万人学习

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

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