ci get_instance()

你随便下个CI框架的源码都会看到很多的get_instance() 函数,这个函数是用来获取CI 的全局超级对象,CI 是单例模式的框架,所有全局有一个超级对象。因为只有一个实例,所以无论这个函数使用多少次都不会消耗资源的。一般来说,只有在helper或library中才使用get_instance。

以前我们都是这样用的:$this->load->library('session');

$this只作用在你自己的控制器、模型、视图中,如果你在自定义的类中也想使用CI的函数话,你就可以这样做:

//通过引用的方式赋给变量将使用原始的 CodeIgniter 对象

$ci = &get_instance();

//这样就可以使用ci的函数了

$ci->load->library('session');

以上是网上的,以下是自己遇到的:

-------------------------------------------------

超级全局变量还可以存储:类似这样:

$instance = &get_instance();
$router = $instance->router;
$page = strtolower($router->class . '/' . $router->method);

$auth = $instance->session->userdata('authorization');

$instance->data['user'] = $last;

 

posted @ 2015-11-13 16:08  miyaye  阅读(209)  评论(0编辑  收藏  举报