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

回到顶部