调用$ CI和在codeigniter中使用`this`之间有什么不同吗?

时间:2013-01-25 08:26:36

标签: php codeigniter frameworks

  

可能重复:
  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()?谢谢。

1 个答案:

答案 0 :(得分:1)

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