嘟嘟社区

请问php里的foreach


我在foreach循环里加了echo,我想的是它遍历到一个,输出一个。可是我发现foreach数量很大的时候,它就一直在那转,最后一次性输出,这是为啥呢
俗称卡了

请问我咋样才能让它一个个输出呢

可以配合前端实现
本帖最后由 Hyouka_ 于 2022-7-20 18:02 编辑

这个不是卡了 是缓存输出机制
运算完再把结果输出到页面
如果是命令行执行PHP就不会

网页动态输出好像要用的这2个函数
ob_end_clean 和 ob_implicit_flush
应该还有其他函数 没试过不清楚


php 生命周期就是这样 除非你用cli 命令行模式
所有的基于cgi模式的都是这样,除非手动刷新缓冲区
准确说和php 无关
或者说和语言无关B/S架构就是这样
问题不是php 问题是浏览器
浏览器无法像图片一样 一点点给你加载整个页面
你打开网页也是一次性输出页面
那种js异步加载 不在讨论范围
缓冲区问题,可以手动刷新输出到浏览器
echo下面增加以下代码即可
  1. ob_flush();
  2. flush();

复制代码

Jonathan9527 发表于 2022-7-20 18:05
准确说和php 无关
或者说和语言无关B/S架构就是这样
问题不是php 问题是浏览器

是webserver问题,不是浏览器