Codeigniter:获取实例

Kev*_*own 23 codeigniter

Codeigniter中"获取实例"的目的是什么?您如何向初学者解释这一点?

Phi*_*eon 59

好的,所以CodeIgniter中的所有内容都会运行超级魔术$this变量.这仅适用于类,因为$this基本上定义了当前类.

你的控制器是一个类,所以$ this就在那里,允许你这样做 $this->load->model('whatever');

在模型中,您也使用了一个类.这里略有不同,因为$this当你从Model扩展时只包含有用的东西.尽管如此,$this仍然有效.

当您使用帮助程序或库时,您需要找到"实例"或$this等效的.

$ci =& get_instance();
Run Code Online (Sandbox Code Playgroud)

... make $ci包含完全相同的东西/代码/实用性$this,即使你不在一个类中,或者不在一个继承它的类中.

这是对2个品脱后的初学者的解释,所以它是错误的或者是正确的.;-)

  • 2品脱,是吗?那么库/助手的用处是什么?为什么不使用模型? (2认同)
  • 当然看到一切都是PHP类,你可以随心所欲地放置任何你喜欢的东西.一般来说,在CodeIgniter中,它被分解为"数据库交互/业务逻辑"=模型,简单函数放在帮助器中,通用类是库. (2认同)

Wil*_*den 11

它是单例模式的实现.从本质上讲,只有一个有问题的类实例,它可以在全球范围内访问.该get_instance方法是静态的,因此提供了一种从代码中的任何位置访问实例的方法.

  • @Kevin:在这种情况下,我建议您在深入研究依赖它的框架之前先阅读面向对象编程(OOP)! (6认同)
  • 会的,威尔! (3认同)
  • 还不够垃圾。我是超级菜鸟!:) (2认同)