codeigniter 渲染模板时的疑惑

在控制器中:
		  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()把模板解析结果输出。

  

posted on 2012-01-17 15:54  天空尚兰  阅读(314)  评论(0编辑  收藏  举报

导航