关于函数ob_flush manual说
The buffer contents are discarded after ob_flush() is called.This function does not destroy the output buffer like ob_end_flush() does.
我对这里丢弃和销毁的词语感到困惑.即使在ob_flush()的情况下丢弃了缓冲区内容,也无法访问它们,即使它们被破坏,如ob_end_flush(),也无法访问它们.
那么这两个函数之间的区别是什么?
更新:
为了回应JamWaffles answer,我不明白删除缓冲区中的所有内容的重要性,但保持缓冲区与删除整个缓冲区(释放它),因为PHP没有指针的概念,你不能得到缓冲区的地址所以它是无关紧要的你是否应该是无关紧要的保持空缓冲区或你释放它
我会试着更好地解释一下.
废弃
假设我有一个漂亮,明亮的橙色塑料桶.这是我的缓冲区.然后我得到一些沙子,代表缓冲区的内容,然后填满缓冲区(桶).然后我用沙子把这个桶装进去,然后把它倒进沙坑里,这是我的客户.你会注意到沙子已经消失了,但水桶仍然存在.这就是缓冲区内容被丢弃的意思 – 缓冲区本身可以重复使用(再次填充沙子).在内存方面,内存已清空但未释放,因此可以再次填充.
摧毁
现在,如果我们再次拿起我们的水桶,再次用沙子填满,将沙子清空,然后放火烧水桶,因为我们不再需要它,这叫做破坏缓冲区;缓冲区中的数据消失了,但缓冲区本身也是如此.在内存方面,内存可以用于其他用途.
OP问,这在PHP中是否重要,没有指针?嗯,这取决于你想做什么.如果您正在处理长页面,并且希望(例如)在处理页面的其余部分以便在完成后发送页面和侧栏到客户端,请使用ob_flush().
如果你想在没有任何更多输出的情况下向客户端刷新内容,请使用ob_end_flush().
我的意思绝对不是在以相当光顾的语气说话时不尊重;我想做一个类比,使定义尽可能清晰.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。