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()把模板解析结果输出。

  

你可能感兴趣的:(CodeIgniter)