跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

弱弱的问一个小问题,关于死循环

写一段死循环,为什么再浏览器直接就崩溃了,而在命令行下可以继续执行?只是因为走的协议不一样吗?求大神给个详细的解释。
while(true){ echo 'a'; }
回复内容: 写一段死循环,为什么再浏览器直接就崩溃了,而在命令行下可以继续执行?只是因为走的协议不一样吗?求大神给个详细的解释。
while(true){ echo 'a'; }
如果在浏览器端测试, 因为PHP有各种缓存 你可以先调用一下ob_end_flush 然后在循环中调用flush() 这样就会有内容出来了 不过 你还要考虑 php 的默认的执行时间, 和浏览器的超时机制 cli模式下 PHP的执行时间默认是不受限制的, 而且也没有默认开启ob之类的功能 http://www.php100.com/manual/... 覆盖 php.ini 设置选项 PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。 下载
implicit_flush
:在命令行模式下,所有来自 print 和 echo 的输出将被立即写到输出端,而不作任何地缓冲操作。如果希望延缓或控制标准输出,仍然可以使用 output buffering 设置项。
max_execution_time
:鉴于在外壳环境下使用 PHP 的无穷的可能性,最大运行时间被设置为了无限值。为 web 开发的应用程序可能只需运行几秒钟时间,而外壳应用程序的运行时间可能会长的多。 php.ini的max_execution_time指定了程序执行时间,如果超过了此设置,脚本返回一个致命的错误。默认值为30秒,而命令行不收此控制。 可以通过
set_time_limit(0)
没有时间方面的限制

相关文章