Codeigniter $ this-> load-> any_method()如何工作?
我们通常使用一个对象调用一个方法,但是在这里codeigniter中有一个变量调用方法。他们是如何设计的?我遇到了一个叫超级对象的东西,他们是如何制造这样一个对象的。任何帮助都是令人满意的。我想知道内部架构如何在这里工作。
$this->load->view(); //it loads view , how come $this->load an object here
回答:
导航到/system/core/Controller.php
,你可以看到下面的线条,在这一切得到触发
public function __construct() {
self::$instance =& $this;
foreach (is_loaded() as $var => $class)
{
$this->$var =& load_class($class);
}
$this->load =& load_class('Loader', 'core');
$this->load->initialize();
log_message('info', 'Controller Class Initialized');
}
看一看这一以及system/core/Loader.php
,你可以看到这样的事情(相关->view()
)
/** * View Loader
*
* Loads "view" files.
*
* @param string $view View name
* @param array $vars An associative array of data
* to be extracted for use in the view
* @param bool $return Whether to return the view output
* or leave it to the Output class
* @return object|string
*/
public function view($view, $vars = array(), $return = FALSE)
{
return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_prepare_view_vars($vars), '_ci_return' => $return));
}
以上是 Codeigniter $ this-> load-> any_method()如何工作? 的全部内容, 来源链接: utcz.com/qa/261197.html