我最近查看了 CodeIgniter 的代码,只是想看看它是如何工作的。
我不明白的一件事是为什么 CodeIgniter 将视图生成的所有输出存储在一个变量中并在脚本末尾输出?
这是来自 ./system/core/Loader.php 第 870 行CI 源代码 @ GitHub的一段代码
/*
* Flush the buffer... or buff the flusher?
*
* In order to permit views to be nested within
* other views, we need to flush the content back out whenever
* we are beyond the first level of output buffering so that
* it can be seen and included properly by the first included
* template and any subsequent ones. Oy!
*/
if (ob_get_level() > $this->_ci_ob_level + 1)
{
ob_end_flush();
}
else
{
$_ci_CI->output->append_output(ob_get_contents());
@ob_end_clean();
}
函数 append_output 将给定的字符串附加到 CI_Output 类中的变量。
这样做有什么特殊原因而不使用 echo 语句还是只是个人喜好?