我似乎无法在任何地方找到一个好的答案。如果我正在运行输出缓冲,并且die()
被触发,那是否也启动了ob_end_flush()
?
是的,它确实。只要脚本正常结束,缓冲区就会被清空。唯一不优雅的结局是如果它出现分段错误或它被杀死(信号9 SIG_KILL)。 die()
唯一能够严格杀死进程的地方就是你在register_shutdown_function
中调用它(但是在调用shutdown函数之前刷新缓冲区,所以那里没有问题)。有关更多信息,请参阅Connection Handling ...
是。
但是,如果有,则可以将输出设置为空
register_shutdown_function('ob_clean');
在代码的早期。
在某些情况下,我们不想在die()上输出ob。我在这里写这个,以防它可以帮助任何想要做同样事情的人。