在控制器中:
public function index()
{
echo 1;
$this->load->view('welcome2');
echo 2;
//为什么输出结果为: 12<html></html>
//而不是 1<html></html>2
}
原因:
在system/core/Loader.php中:
$_ci_CI->output->append_output(ob_get_contents());
//通过ob_start()和ob_get_contents(),将模板解析后得到的结果添加到输出内容中(Output->final_output)
在system/core/CodeIgniter.php中
if ($EXT->_call_hook('display_override') === FALSE)
{
$OUT->_display();//这里是真正输出类似$this->load->view('welcome2')的内容
}
先 echo 1;
然后把模板解析结果暂时存到别的地方,
然后 echo 2;
最后 $OUT->_display()把模板解析结果输出。