CI中所有的controller都必须继承超级控制器才能使用CI的功能:
/**
* CI超级控制器,controller所有文件都得继承超级CI_Controller
*/
class CI_Controller {
//定义保存单例的静态成员变量
private static $instance;
//构造函数
public function __construct()
{
//实现单例,在第一次实例时,这个静态变量实质就是引用了这个实例。
self::$instance =& $this;
//is_load()是CodeIgniter.php中记录加载类名的数组
//这里将所有加载的组件都给超级控制器
foreach (is_loaded() as $var => $class)
{
$this->$var =& load_class($class);
}
//加载及初始化loader组件,详细见loader.php
$this->load =& load_class('Loader', 'core');
$this->load->initialize();
log_message('debug', "Controller Class Initialized");
}
//创建一个用来实例化对象的方法
/*
CodeIgniter.php中有这个函数
function &get_instance()
{
return CI_Controller::get_instance();
}
后面就可以使用&get_instance来获得这个单一实例
*/
public static function &get_instance()
{
return self::$instance;
}
}
转载注明地址: http://www.phpddt.com/php/ci-controller.html 尊重他人劳动成果就是尊重自己!