【发布时间】:2011-02-18 15:38:46
【问题描述】:
Codeigniter 中“获取实例”的目的是什么? 你会如何向一个完全的初学者解释这个?
【问题讨论】:
标签: codeigniter
Codeigniter 中“获取实例”的目的是什么? 你会如何向一个完全的初学者解释这个?
【问题讨论】:
标签: codeigniter
好的,所以 CodeIgniter 中的所有内容都通过超神奇的$this 变量运行。这仅适用于类,因为$this 基本上定义了当前类。
你的控制器是一个类,所以 $this 在那里,允许你做$this->load->model('whatever');
在模型中,您还使用了一个类。这里略有不同,因为$this 仅包含从 Model 扩展而来的有用内容。尽管如此,$this 仍然有效。
当您使用帮助程序或库时,您需要找到该“实例”或$this 等效项。
$ci =& get_instance();
...使$ci 包含与$this 完全相同的东西/代码/有用性,即使您不在一个类中,或者不在一个继承它的类中。
这是对 2 品脱后的初学者的解释,所以它要么是错误的,要么是正确的。 ;-)
【讨论】:
这是singleton pattern 的实现。本质上,该类只有一个实例,它被设计为可全局访问。 get_instance 方法是静态的,因此提供了一种从代码中的任何位置访问实例的方法。
【讨论】: