Kan*_*iya 1 php variables codeigniter
嗨我正在使用codeigniter,在我的控制器构造函数中,有时我$this有时使用$this->ci
在两个构造函数中,我使用这样的
public function __construct()
{
$this->ci =& get_instance();
$this->ci->load->library('form_validation');
$this->ci->load->library('catalog/CatalogManager');
}
function __construct()
{
parent::__construct ();
$this->ci = & get_instance ();
$this->load->library ( 'auth_lib' );
$this->load->library ( 'session' );
}
Run Code Online (Sandbox Code Playgroud)
当传递数据以查看我使用
$this->ci->data和$this->data在上述两种情况.
既没有错误,但我很困惑,正确的用途是什么.
请帮忙...........
Dam*_*rsy 10
所有控制器都扩展了主CI_Controller,所以调用类似$this->load意味着访问load()父类CI_Controller中的父方法.
$this->ci因为$this->ci = &get_instance()你正在再次调用对主控制器类的引用而起作用.如果您查看引导程序文件(IIRC.或者codeigniter.php文件),那么该函数get_instance()除了返回(通过引用)CI_Controller类的实例之外什么都不做.
因此,基本上,调用$this->ci->load并且$this->load是完全相同的,只是在Controller/Model/View中第一个是不必要的,因为系统已经在父类中执行了这一操作(通过方法加载).
如果你看一下库,例如,你会看到使用$this->ci->method()是必要的,因为你需要拥有CI_Controller的所有方法,这是一种驱动整个框架的"超类".
查看loader类和CodeIgniter类,了解CI内部的工作原理.
| 归档时间: |
|
| 查看次数: |
6396 次 |
| 最近记录: |