我ob_get_clean()
最后一次看到了很多.通常我已经完成了$test .= 'test'
我想知道一个人是否比另一个更快和/或更好.
以下代码使用ob_get_clean()
:
ob_start(); foreach($items as $item) { echo '' . $item . ''; } $test = ob_get_clean();
以下代码使用$test .= 'test'
:
$test = ''; foreach($items as $item) { $test .= '' . $item . ''; }
哪个更好?
结果是一样的,我认为性能差异可以忽略不计.基本上,个人风格偏好的问题.我会自己连接 - 只有当连接不是一个选项时才使用输出缓冲.
此外,不是同时运行ob_get_contents()和ob_clean(),而是运行ob_get_clean(),它同时执行两个操作.
输出缓冲区具有全局变量的所有缺陷.您必须知道从ob_start()
到的所有执行路径ob_get_clean()
.你确定它会到达那里,并且之间打开的任何缓冲区都将被关闭吗?请记住,代码可能会抛出异常.对于下一个追踪的人来说,这可能是一个非常有趣的错误.
另一方面 - 我讨厌甚至提及它 - 由于PHP的内部原因,输出缓冲在连接大字符串时有点快.我不确定这是否仍然是真的.