当您运行PHP调试器并逐步执行回显时,是否应该动态更新浏览器输出


When you run a PHP debugger, and you step through an echo, should the browser output be dynamically updated?

我有一个PHP文件,内容如下:

1. <?php
2. $string = 'Hello world!';
3. echo $string;
4. ?>

我在第2行和第4行放了一个换行符。我运行调试器。打开浏览器输出,脚本在第2行停止,浏览器输出为空。是有意义的!然后跳转到echo命令之后的下一个断点,位于第4行。此时,浏览器是否应该更新并显示"Hello world"?或者调试器不逐步更新浏览器输出,因此对浏览器显示没有用处,只对检查内部代码本身有用吗?

谢谢!

这里的答案有点复杂。一般来说,Xdebug不会停止向浏览器输出,PHP也不会这样做,除非您打开了输出缓冲或自动压缩。

然而,web服务器可能在将数据发送到浏览器之前将其缓冲到某一点。你可以通过调用flush(): http://php.net/flush强制web服务器刷新它的缓冲区。但是要注意,有些浏览器也会等到它们有足够的数据后才实际显示任何内容。