复制Codeigniters加载功能

时间:2011-03-18 11:28:00

标签: php class codeigniter instance-variables

我最近一直在玩Codeigniter,看看我能从中学到什么。我遇到了加载功能,并想知道是否有人知道它是如何完成的。基本上,它看起来像:

$this->load->model('Model_name');
$this->Model_name->some_function();

现在,load显然是一个类,并且创建了一个实例并称为load。 load包含类“Model_name”并创建它的实例。但是我无法解决的部分是,load类如何创建一个名为“Model_name”的“类变量”,以便在代码的第二行中使用?我将如何实际在php中实现它。

感谢。

2 个答案:

答案 0 :(得分:0)

这种东西适用于像PHP这样的解释性语言。虽然对此进行描绘可能会非常困惑,特别是如果您对使用C ++,C#等严格语言有经验。

这个想法是,PHP函数可以执行PHP代码,结果将在脚本的其他地方可见。

答案 1 :(得分:0)

该类基本上做的是记住所有创建的对象(例如$ this),然后通过引用将新创建的类分配为这些类中的变量。

function Load($className)
{
  $newClass = new $className();
  foreach($this->objects as &$object) //objects is array with created objects
    $object->$className = $newClass;
}
然而,它在背景中做的事情要多得多。你知道你可以打开'loader.php',然后阅读它的作用,对吗?