CI-CodeIgniter中“超級物件”:$CI =& get_instance()

hellowoody發表於2019-02-16

要你自定義的類庫中訪問CodeIgniter的原始資源,你必須使用 get_instance() 函式.這個函式返回一個CodeIgniter super object.

一般來說在你的控制器函式中你可以通過 $this 呼叫任何可用的CodeIgniter函式:

$this->load->helper(`url`);
$this->load->library(`session`);
$this->config->item(`base_url`);

$this, 只直接作用在你自己的控制器,模型和檢視中.當你在自定義類中想使用CodeIgniter原始類時,你可以這樣做:

首先,定義CodeIgniter物件賦給一個變數:

$CI =& get_instance();

一旦定義某個物件為一個變數,你就可以使用那個變數名 取代 $this:

$CI =& get_instance();

$CI->load->helper(`url`);
$CI->load->library(`session`);
$CI->config->item(`base_url`);

注意: 你將注意到get_instance()這個函式通過被引用的方式被傳遞:

$CI =& get_instance();

這十分重要. 通過引用的方式賦給變數將使使用原始的CodeIgniter物件,而不是建立一個拷貝

同時,請注意: 如果你使用php 4,那麼請最好不要在類的建構函式中呼叫 get_instance() .php4在引用位於建構函式中的CI super object時存在問題,因為物件只有在類完全例項化後才存在.

相關文章