die()会执行ob_end_flush()吗?

问题描述 投票:8回答:2

我似乎无法在任何地方找到一个好的答案。如果我正在运行输出缓冲,并且die()被触发,那是否也启动了ob_end_flush()

php output-buffering die
2个回答
14
投票

是的,它确实。只要脚本正常结束,缓冲区就会被清空。唯一不优雅的结局是如果它出现分段错误或它被杀死(信号9 SIG_KILL)。 die()唯一能够严格杀死进程的地方就是你在register_shutdown_function中调用它(但是在调用shutdown函数之前刷新缓冲区,所以那里没有问题)。有关更多信息,请参阅Connection Handling ...


0
投票

是。

但是,如果有,则可以将输出设置为空

register_shutdown_function('ob_clean');

在代码的早期。

在某些情况下,我们不想在die()上输出ob。我在这里写这个,以防它可以帮助任何想要做同样事情的人。

© www.soinside.com 2019 - 2024. All rights reserved.