• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

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

PHP admin 1年前 (2018-06-08) 11次浏览 已收录 0个评论
文章目录[隐藏]

写一段死循环,为什么再浏览器直接就崩溃了,而在命令行下可以继续执行?只是因为走的协议不一样吗?求大神给个详细的解释。

while(true){
echo 'a';
}

回复内容:

写一段死循环,为什么再浏览器直接就崩溃了,而在命令行下可以继续执行?只是因为走的协议不一样吗?求大神给个详细的解释。

while(true){
echo 'a';
}

如果在浏览器端测试, 因为PHP有各种缓存
你可以先调用一下ob_end_flush
然后在循环中调用flush()
这样就会有内容出来了
不过 你还要考虑 php的默认的执行时间, 和浏览器的超时机制

cli模式下 PHP的执行时间默认是不受限制的, 而且也没有默认开启ob之类的功能

http://www.php100.com/manual/…

覆盖 php.ini 设置选项

implicit_flush:在命令行模式下,所有来自 print 和 echo 的输出将被立即写到输出端,而不作任何地缓冲操作。如果希望延缓或控制标准输出,仍然可以使用 output buffering 设置项。

max_execution_time:鉴于在外壳环境下使用 PHP 的无穷的可能性,最大运行时间被设置为了无限值。为 web 开发的应用程序可能只需运行几秒钟时间,而外壳应用程序的运行时间可能会长的多。

php.ini的max_execution_time指定了程序执行时间,如果超过了此设置,脚本返回一个致命的错误。默认值为30秒,而命令行不收此控制。

可以通过set_time_limit(0)没有时间方面的限制


39MO , 版权所有丨如未注明 , 均为原创丨转载请注明原文链接:弱弱的问一个小问题,关于死循环
喜欢 (0)
[1353713598@qq.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址