CodeIgniter Basic

时间:2011-01-07 09:24:36

标签: codeigniter

我是codeigniter的新手。

我想知道使用$ CI =& get_instance();

用于错误记录或全局配置变量。

提前感谢。

2 个答案:

答案 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.