Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在codeigniter中调用$CI和使用'this'有什么不同吗?_Php_Codeigniter_Frameworks - Fatal编程技术网

Php 在codeigniter中调用$CI和使用'this'有什么不同吗?

Php 在codeigniter中调用$CI和使用'this'有什么不同吗?,php,codeigniter,frameworks,Php,Codeigniter,Frameworks,可能重复: 我有一个控制器,它有很多函数,我想把它们分成不同的cmd对象。但在控制器中,我可以执行$this魔术,例如,我可以调用如下内容: $this->form_validation->run('myAction') 但是当我把这个代码移到一个对象上,它不是控制器,所以我调用了如下函数: $CI =& get_instance(); $CI->form_validation->run('myAction'); 我意识到它们可以运行,结果正是我想要的。但

可能重复:

我有一个控制器,它有很多函数,我想把它们分成不同的cmd对象。但在控制器中,我可以执行
$this
魔术,例如,我可以调用如下内容:

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

但是当我把这个代码移到一个对象上,它不是控制器,所以我调用了如下函数:

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

我意识到它们可以运行,结果正是我想要的。但是,我的问题是,这两种操作或代码有什么不同吗?里面的
get\u instance()
黑魔法是什么?控制器的
$this
是否引用了相同的
get_instance()
?谢谢

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

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

根据这里给出的答案,我敢说它们是相同的[1]:从名称本身获取已初始化的类的实例$这是指扩展核心控制器CI_controller时加载的方法基于这里给出的答案,我敢说它们是相同的[1]:从名称本身获取已初始化类的实例$这是指扩展核心控制器CI_控制器时加载的方法