我是codeigniter的新手。
我想知道使用$ CI =& get_instance();
用于错误记录或全局配置变量。
提前感谢。
答案 0 :(得分:9)
来自CodeIgniter手册:
$ CI =& get_instance();
将对象分配给a后 变量,你将使用该变量 而不是$ this:
$CI =&get_instance();
$CI->load->helper('url');
$CI->load->library('session');
$CI->config->item('base_url'); etc.
注意:您会注意到上述情况 正在使用get_instance()函数 通过引用传递:
$CI =& get_instance();
这非常重要。分配方式 参考允许你使用 比较原始的CodeIgniter对象 而不是创建它的副本。
另外,请注意:如果您正在跑步 PHP 4通常最好避免 从内部调用get_instance() 你的类构造函数。 PHP 4有 引用CI超级的麻烦 应用程序构造函数中的对象 因为直到对象才存在 class是完全实例化的。
链接: http://codeigniter.com/user_guide/general/creating_libraries.html
答案 1 :(得分:0)
只有扩展CI_Controller,Model,View的类才能使用
$this->load->library('something');
$this->load->helper('something');//etc
您的自定义类无法使用上述代码。 要在自定义类中使用上述功能,必须使用
$CI=&get instance();
$CI->load->library('something');
$CI->load->helper('something');
例如,在您的自定义类
中// this following code will not work
Class Car
{
$this->load->library('something');
$this->load->helper('something');
}
//this will work
Class Car
{
$CI=&get_instance();
$CI->load->library('something');
$CI->load->helper('something');
}
// Here $CI is a variable.