1

可能重复:
Codeigniter 中的 get_instance():为什么将其分配给变量?

我有一个控制器,它有很多功能,我想将它们分成不同的 cmd 对象。但是在控制器中,我可以发挥作用$this,例如,我可以这样调用:

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

但是当我将此代码移动到一个不是控制器的对象时,我这样调用该函数:

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

我意识到他们可以跑,结果正是我想要的。但是,我的问题是,这两个操作或代码有什么不同吗?里面的get_instance()黑魔法是什么?控制器$this指的是相同的get_instance()吗?谢谢。

4

1 回答 1

1

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

于 2013-01-25T08:37:33.927 回答