首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么在php中运行while循环后没有输出?

在PHP中运行while循环后没有输出的原因可能有以下几种:

  1. 循环条件不满足:首先要检查while循环的条件是否满足,如果条件一开始就不满足,那么循环体内的代码将不会执行,导致没有输出。
  2. 循环体内没有输出语句:即使循环条件满足,如果循环体内没有任何输出语句,那么也不会有输出结果。确保在循环体内包含输出语句,例如echo或print。
  3. 输出被缓冲:PHP中的输出可以被缓冲,意味着输出语句执行后并不立即将内容发送到浏览器,而是在缓冲区中等待。如果缓冲区没有满或者没有手动刷新缓冲区,那么输出将不会立即显示。可以使用ob_flush()或者flush()函数来手动刷新缓冲区。
  4. 错误导致脚本终止:如果在while循环之前存在语法错误或者运行时错误,那么脚本可能会终止执行,导致没有输出。检查代码中是否存在错误,并确保错误报告被打开。

综上所述,如果在PHP中运行while循环后没有输出,需要检查循环条件、循环体内是否包含输出语句、是否手动刷新缓冲区以及是否存在错误导致脚本终止等因素。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java 为什么不推荐 while 循环中使用 sleep()

前言最近逛 CSDN 看到一篇文章,文章大意是说为什么循环中不推荐使用 sleep 操作,原因在于线程挂起和唤醒会有很大的性能消耗,并推荐使用 Timer 及 ScheduledExecutorService...Demo { private static final boolean FLAG = true; public static void main(String[] args) { while...sleep 可能会导致忙等待 // 如 FLAG 变量状态未改变 那么线程可能一直循环,并不断进行线程挂起和唤醒原因是否正确主要原因和原文博主所说有很大的关系但不完全正确:我们都知道 Java 线程实际对应着操作系统的一个线程...方案是否合理记住一点,讨论方案永远不能脱离场景,没有一种方案可以适应所有的场景,我们永远只是探讨适合当前场景的方案。...比如微服务体系,客户端上报实例状态,或者服务端检测客户端状态都会使用定时轮询的机制。

56030

关于php对象池

,然后直接输入 php test.php 进行运行php脚本 为什么要讲php-cli模式呢?...php-cli模式,开发者可以编写不中断运行的代码,以及可以自行维护运行php的进程,可以实现一个web服务器和用户交互。 类似于这样: <?...,理论上php-cli是跟开发者交互的,echo没法直接输出给用户,该知识点下面将补充 //第二次循环没有用户请求,继续循环下去 // 第三次循环,用户请求...,理论上php-cli是跟开发者交互的,echo没法直接输出给用户,该知识点下面将补充 //无限循环下去,不断的获取用户的请求 } 在这份代码,可以看出: 我们程序一开始,自己实现了一个...web服务器 先new 了user对象 while 1死循环,只要获取到了用户请求,则处理数据 获取到了用户1数据,直接填入new好的对象,并echo回去 再次获取到了用户2数据,覆盖之前用户1的对象属性

82120

关于php对象池

,然后直接输入 php test.php 进行运行php脚本 为什么要讲php-cli模式呢?...php-cli模式,开发者可以编写不中断运行的代码,以及可以自行维护运行php的进程,可以实现一个web服务器和用户交互。 类似于这样: <?...,理论上php-cli是跟开发者交互的,echo没法直接输出给用户,该知识点下面将补充          //第二次循环没有用户请求,继续循环下去      //    第三次循环,用户请求     ...,理论上php-cli是跟开发者交互的,echo没法直接输出给用户,该知识点下面将补充          //无限循环下去,不断的获取用户的请求 } 在这份代码,可以看出: 1:我们程序一开始,自己实现了一个...例如:        假设没有对象池,也没有对象复用,传统web模式下,假设进程也有100,10000个,一个请求进来需要消耗1%的cpu 当100个请求进来的时候,cpu已经为100%,勉强全部能运行

91020

「基础编程学习」 「PHP7数组详解」:第1章 (6)循环结构

比如对于数组的处理,我们程序当中,总是有很多规格的数据要处理,转化,转换,格式化。而数组,也即是我们本书所要讲的重点知识,PHP中非常常见。 PHP循环结构,有3语法结构。...下面我们举一个直观的例子,大家视觉上对for循环有个认识。我们输出10个进度条,分别从10%-100%,递加10%。...3 - while循环 while循环用的也应该算是最低的,为什么?一不留神,死循环!会一直到PHP的timeout时间30秒。这是不允许出现的。 还是通过代码认识一下其结构。 ?...有时候为了写一个命令行运行的文件,要守护进程,永远不过期,永远不退出,那可能就需要一个死循环,用云运行下去。下面的代码看一下: ? 大家看,这就是一个while(true)典型的死循环为什么这么用?...知道将字符串字段到最后没有任何值,那么strlen($nvpstr) === 0,这时候while循环退出,函数返回。 大家完全可以发挥想象力,使用这简单的结构,构造出复杂的应用。

70220

关于PHP脚本和浏览器连接深入解析

有时候让您的脚本完整的运行会带来很多方便,即时没有远程浏览器接受脚本的输出。默认的情况是当远程客户端连接中断时脚本将会退出。...通过该关闭出发函数,当远程用户点击 STOP 按钮,您的脚本再次尝试输出数据时,PHP 将会检测到连接已被中断,并调用关闭触发函数。 您的脚本也有可能被内置的脚本计时器中断。...我们还用第一段脚本,只不过将对前端的输出注释掉。 <?php $i=1; while(1){ // if(!...向端要输出9时,发现前端的连接断掉了,才判断出connection_status()=1,而connection_aborted()也变成了1 因此对于连接状态的判断,是PHP向前台输出时才知道的,如果没有向前台输出...这也证实了一些人问,为什么前端关掉了,后台的循环处理为啥一直不结束,那是因为循环处理没有向前端输出,所以并不知道前端断掉了,这样的进程将一直会运行下去,除非设置了set_time_limit()。

1K10

swoole_proces实现多进程

->read(); swoole_event_del($process->pipe);//socket处理完成,从epoll事件移除管道}); 执行结果: Worker Exit, PID=686Worker...$redirect_stdin_stdout,重定向子进程的标准输入和输出。启用此选项子进程内输出内容将不是打印屏幕,而是写入到主进程管道(例如用echo打印的内容也写入管道)。...读取键盘输入将变为从管道读取数据。默认为阻塞读取。 $create_pipe,是否创建管道,启用 $redirect_stdin_stdout,此选项将忽略用户参数,强制为true。...如果子进程内没有进程间通信,可以设置为 false 注意: swoole_process最新的1.8.0版本已经禁止Web环境中使用了,所以也只能支持命令行。...进程常驻后台 如果跑的服务需要一直常驻后台,可以 $process->start();前面加上: swoole_process::daemon(); 服务会在后台运行

67830

PHP yield生成器处理大数据文件、性能优化很有用

'; } 我们浏览器里面看一下运行结果: 这里非常完美,没有任何问题。...> 看下这段和刚刚很像的代码,我们删除了数组$data,而且也没有返回任何内容,而是time()之前使用了一个关键字yield 使用生成器 我们再运行一下第二段代码: 我们奇迹般的发现了,输出的值和第一次没有使用生成器的不一样。这里的值(时间戳)中间间隔了1秒。 这里的间隔一秒其实就是sleep(1)造成的后果。但是为什么第一次没有间隔?...首先明确一个概念:生成器yield关键字不是返回值,他的专业术语叫产出值,只是生成一个值 那么代码foreach循环的是什么?其实是PHP使用生成器的时候,会返回一个Generator类的对象。...foreach可以对该对象进行迭代,每一次迭代,PHP会通过Generator实例计算出下一次需要迭代的值。这样foreach就知道下一次需要迭代的值了。 而且,在运行for循环执行,会立即停止。

1.3K40

PHP | 顺序结构、条件结构、循环结构 知识梳理与运用实例

没有中奖!"; } echo $info; //输出是否中奖 ?> ---- 3. 循环结构 3.1 while循环语句 语法: <?...; echo ""; $i++; }while($i<=10); ?> 运行结果: 跑第1圈。 跑第2圈。 跑第3圈。 跑第4圈。 跑第5圈。 跑第6圈。...---- 3.3 while与do…while语句的区别 while先判断条件是否成立,执行循环, do...while先执行一次任务,再判断是否继续执行循环,也就是说do...while至少会执行一次任务...当条件为FALSE时,while的任务会一次也不执行,do...while的任务会执行1次。 demo: ---- 3.6 foreach循环语句 语法: PHPforeach循环语句,常用于遍历数组, 一般有两种使用方式:不取下标、取下标。 (1)只取值,不取下标 <?

1.2K20

php基础教程 第八步循环补充

其它循环 上一节内容,讲解了php循环,并且了解了for循环。for循环php循环中的一种,本节中继续讲解php循环While循环、do…while循环、foreach 循环。...接下来使用了while循环条件,添加了 查看完以上代码,我们发现,i变量并没有进行增减,一直都是初始化时的值,为0。此时循环将会一直执行,成为死循环。...> 以上的do…while循环中,while循环的条件是 $i<5,但是变量i的值初始化定义的时候为5,条件是不成立的,那么循环是否会执行?查看以下结果: ?...循环指定了一次,输出了一个hello,随后就跳出循环。...> 以上数组并不完全是设置的键值对。运行结果如下: ? 自定义键值对,如果出现未定义键的数组元素,则会从0开始默认分配。

1.8K10

PHP 中被忽略的性能优化利器:生成器

那么生成器有哪些优点,如下: 生成器会对PHP应用的性能有非常大的影响 PHP代码运行时节省大量的内存 比较适合计算大量的数据 那么,这些神奇的功能究竟是如何做到的?我们先来举个例子。...'; } 我们浏览器里面看一下运行结果: ? 这里非常完美,没有任何问题。...我们奇迹般的发现了,输出的值和第一次没有使用生成器的不一样。这里的值(时间戳)中间间隔了1秒。 这里的间隔一秒其实就是 sleep(1)造成的后果。但是为什么第一次没有间隔?...由于 foreach sleep(1),所以, for循环延迟了1秒生成当前时间 所以,整个代码执行,始终只有一个记录值参与循环,内存也只有一条信息。...而且,在运行 for循环执行,会立即停止。等待 foreach下次循环时候再次和 for索要下次的值的时候, for循环才会再执行一次,然后立即再次停止。直到不满足条件不执行结束。

85760

PHP中被忽略的性能优化利器->生成器

那么生成器有哪些优点,如下: 生成器会对PHP应用的性能有非常大的影响 PHP代码运行时节省大量的内存 比较适合计算大量的数据 那么,这些神奇的功能究竟是如何做到的?我们先来举个例子。...';} 我们浏览器里面看一下运行结果: ? 这里非常完美,没有任何问题。...我们奇迹般的发现了,输出的值和第一次没有使用生成器的不一样。这里的值(时间戳)中间间隔了1秒。 这里的间隔一秒其实就是 sleep(1) 造成的后果。但是为什么第一次没有间隔?...由于 foreach sleep(1) ,所以, for 循环延迟了1秒生成当前时间 所以,整个代码执行,始终只有一个记录值参与循环,内存也只有一条信息。...而且,在运行 for 循环执行,会立即停止。等待 foreach 下次循环时候再次和 for 索要下次的值的时候,循环才会再执行一次,然后立即再次停止。直到不满足条件不执行结束。

80530

PHP中被忽略的性能优化利器:生成器

那么生成器有哪些优点,如下: 生成器会对PHP应用的性能有非常大的影响 PHP代码运行时节省大量的内存 比较适合计算大量的数据 那么,这些神奇的功能究竟是如何做到的?我们先来举个例子。...'; } 我们浏览器里面看一下运行结果: ? 这里非常完美,没有任何问题。...我们奇迹般的发现了,输出的值和第一次没有使用生成器的不一样。这里的值(时间戳)中间间隔了1秒。 这里的间隔一秒其实就是sleep(1)造成的后果。但是为什么第一次没有间隔?...首先明确一个概念:生成器yield关键字不是返回值,他的专业术语叫产出值,只是生成一个值 那么代码foreach循环的是什么?其实是PHP使用生成器的时候,会返回一个Generator类的对象。...foreach可以对该对象进行迭代,每一次迭代,PHP会通过Generator实例计算出下一次需要迭代的值。这样foreach就知道下一次需要迭代的值了。 而且,在运行for循环执行,会立即停止。

1.1K10

php基本语法复习

case为真,才使用default while循环 while只要条件为真,循环执行 do while先执行一次代码块,然后只要指定条件为真,则重复循环(先做一次do,再判断while),即至少会执行一次语句...,即使条件测试第一次就失败了 for循环 提前确定了脚本运行的次数,用for循环 for(init counter;test counter;increment counter){ code...> php函数返回值 使用返回值,用return 当函数内部使用形参时,想要往外输出参数,则需要return,因为形参不是全局变量、 数组 数组能够单独的变量名存储一个或多个值 遍历索引函数 可以使用for循环遍历并输出索引数组的所有值 fopen() fopen()函数用于创建文件 php,创建文件所用的函数和打开文件的相同 如果fopen()没有遍历到文件,就会创建一个文件 $myfile=fopen("a.txt","w"

15210

PHP入门

> 3.2.5 Array(数组)        数组是可以一个变量定义多个值,可以自定义键值对、定义多纬数组、自带各种数组操作函数。...php var_dump($x=null);//运行结果:NULL ?> 3.2.8 常量        常量是一个简单值的标识符,常量被定义,在其他地方不能被改变,常量名不用加$符号。示例: 3.4 条件判断与循环(if/else|switch|for|foreach|while) 3.4.1 if/else        if语句:条件成立时执行代码。        ..."";运行结果:依次输字符a b c } ?> 3.4.5 while        执行逻辑为循环执行代码块中指定的次数,或者当指定的条件为真时循环执行代码块。示例: <?...php $i = 1; while ($i <= 5) {    echo $i . "";//运行结果:依次输出数字 1 2 3 4 5    $i++; } ?>

1.2K10

goto语法PHP的使用

goto语法PHP的使用 C++、Java及很多语言中,都存在着一个神奇的语法,就是goto。顾名思义,它的使用是直接去到某个地方。从来代码的角度来说,也就是直接跳转到指定的地方。...我们的PHP也有这个功能,我们先来看看它是如何使用的: goto a; echo "1"; // 不会输出 a: echo '2'; // 2 代码运行到goto位置时,就跳转到了a:所在的代码行并继续执行下去...while ($j--) { if ($j == 17) { // 假设$j==17是一种异常情况 goto end; // 直接跳走了,循环结束的结果也不输出了...: 目标位置只能位于同一个文件和作用域,也就是说无法跳出一个函数或类方法,也无法跳入到另一个函数 无法跳入到任何循环或者 switch 结构 跳出循环或者 switch,通常的用法是用 goto 代替多层的...有点像while(true)的感觉了。但是,在这个goto循环里是没有break的,只能在goto出去到别的地方。

2.7K10

易犯的PHP小错误及相应分析

要搞清楚编译器为什么会报告某一行上存在错误,首先必须明确编译器解析PHP代码的机制。...其中,T_IF 代 表 if(), T_WHILE 代表 while(), T_FOR 代表 for()等。 常见的错误 还有一些常见的错误,比如语句没有使用分号(;)结束,字符串缺少引号等。...注意echo和print的区别 PHPecho和print都是输出的作用,但是两者之间还是有细微的差别。echo输出没有返回值,但print有返回值,当其执行失败时返回 flase。...而且代码echo语 句的运行效率要略快于print语句。 2....分清self :: 和 this--> 的区别 访问PHP的成员变量或方法时,如果被引用的变量或者方法被声明成const(常量)或者static(静态属性),那么就必须使用域操作符::,而如果被引用的变量或者方法没有被声明成

1.3K70
领券