Codeigniter:获取实例

Posted

技术标签:

【中文标题】Codeigniter:获取实例【英文标题】:Codeigniter: Get Instance 【发布时间】:2011-02-18 15:38:46 【问题描述】:

Codeigniter 中“获取实例”的目的是什么? 你会如何向一个完全的初学者解释这个?

【问题讨论】:

【参考方案1】:

好的,所以 CodeIgniter 中的所有内容都通过超神奇的$this 变量运行。这仅适用于类,因为$this 基本上定义了当前类。

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

在模型中,您还使用了一个类。这里略有不同,因为$this 仅包含从 Model 扩展而来的有用内容。尽管如此,$this 仍然有效。

当您使用帮助程序或库时,您需要找到该“实例”或$this 等效项。

$ci =& get_instance();

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

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

【讨论】:

2 品脱,嗯?那么图书馆/助手的用处是什么?为什么不只使用模型? 当然,既然一切都是 php 类,你可以把任何你喜欢的东西放在任何你喜欢的地方。一般来说,在 CodeIgniter 中它被分解为“数据库交互/业务逻辑”=模型,简单的函数进入帮助程序,通用类是库。 @PhilSturgeon 很好的解释 :) Phil 会期望不到 2 品脱 :-D【参考方案2】:

这是singleton pattern 的实现。本质上,该类只有一个实例,它被设计为可全局访问。 get_instance 方法是静态的,因此提供了一种从代码中的任何位置访问实例的方法。

【讨论】:

不够菜鸟。我是个超级菜鸟! :) @Kevin:在这种情况下,我建议您先阅读有关面向对象编程 (OOP) 的内容,然后再深入研究依赖它的框架!

以上是关于Codeigniter:获取实例的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的 ReferenceError:$ 未定义 - Datepicker - Codeigniter 3

无法让 echo form_open 工作 - CodeIgniter

Codeigniter:获取实例

codeigniter 3 - 删除 index.php:Linux 上的错误 404,但在 Windows 上工作正常

ThinkPHP tp Codeigniter ci 微信开发 控制器代码 示例 实例 模拟http请求 获取acces_token 创建自定义菜单 点击事件 转多客服

CodeIgniter 开发,支付宝接口调用实例