可能的重复项:
Codeigniter 中的 get_instance():为什么要将其分配给变量?
我有一个控制器,它有很多功能,我想将它们分成不同的cmd对象。但是在控制器中,我可以做$this
魔法,例如,我可以这样称呼:
$this->form_validation->run('myAction');
但是当我将此代码移动到一个不是控制器的对象时,我像这样调用该函数:
$CI =& get_instance();
$CI->form_validation->run('myAction');
我意识到他们可以跑,结果正是我想要的。但是,我的问题是,这两个操作或代码有什么不同吗?里面get_instance()
黑魔法是什么?控制器的$this
是否引用相同的get_instance()
?谢谢。
使用
$ci = &get_instance()
,您直接使用 codeigniter 本机库,而不是制作它的副本。"$this
"命令只能在控制器内部使用,因此将CI对象分配给变量是进入控制器外部Ci核心库的唯一方法。注意模型内的"$this
"命令是指模型对象本身。