sharpmental 发表于 2016-3-28 14:56:36

使用$CI和使用$this什么差别?

使用$CI和使用$this什么差别?
看来一段时间的代码,发现两种都有人用,似乎使用$CI并不在文档推荐的方法nei

Michael锐生 发表于 2016-3-30 18:02:56

说一下我的理解,如有错误的地方,请指正。
对于CI框架来说,$CI是个超级对象,一次运行中的所有操作都是在这个对象上,也就是入口控制器的对象。$this的话是指当前类的一个对象,之所以题主会有这样的疑问,是因为在CI的Model中,有个魔术方法__get(),所以在你使用$this访问无法访问的属性时,会把$this转为$CI,这样看来两者似乎没什么区别,但关键在于,如果你访问的属性在类内($this)中存在,也在$CI中存在,那么你访问到的是类内的属性。
所以,我觉得可以看成$this是$CI的一个子对象,这就它两的差别,但至于推荐,我是觉得能用$this的就不要用$CI

Aloghli 发表于 2016-3-31 10:17:45

要我说 $this是一种存在超级对象至于$CI嘛如果你不想用$this或者在controller外的地方用$this的话你得先实例化$this比如:$CI =& get_instance();
页: [1]
查看完整版本: 使用$CI和使用$this什么差别?