2013-01-25 36 views
1

可能重複:
get_instance() in Codeigniter: Why assign it to a variable?

我有一個控制器,它有很多的功能,我想將它們分成不同的CMD對象。但在控制,我可以做$this魔法,比如,我可以調用是這樣的:

$this->form_validation->run('myAction');

但是,當我提出這個代碼的對象,這是不是一個控制器,所以,我打電話像這樣的功能:

$CI =& get_instance(); 
    $CI->form_validation->run('myAction'); 

我意識到他們可以運行,結果正是我想要的。但是,我的問題是,這兩個操作或代碼有什麼不同?什麼是get_instance()黑魔法裏面?控制器的$this是否提及相同的get_instance()?謝謝。

+0

根據這裏給出了答案,我敢說他們是同一 [1]:http://stackoverflow.com/questions/2819435/codeigniter-get-instance –

+0

從名字本身get_instance()實例已經初始化的類。 $ this指擴展核心控制器CI_Controller時加載的方法 – tomexsans

回答

1

使用$ci = &get_instance(),您直接使用codeigniter本地庫,您不會複製它。 「$this」命令只能在控制器內部使用,所以將CI對象分配給變量是唯一必須進入控制器外部的Ci核心庫的方法。請注意,模型中的「$this」命令引用模型對象本身。

相關問題