可能重复:
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)
使用$ci = &get_instance()
,您直接使用codeigniter本机库,而不是复制它。 “$this
”命令只能在控制器内部使用,因此将CI对象分配给变量是您必须进入控制器外部Ci核心库的唯一方法。请注意,模型中的“$this
”命令引用模型对象本身。