【问题标题】:Replicating Codeigniters load function复制 Codeigniters 加载函数
【发布时间】:2011-07-18 02:27:13
【问题描述】:
我最近一直在玩 Codeigniter,看看我能从中学到什么。我遇到了加载功能,想知道是否有人知道它是如何完成的。基本上,它看起来像:
$this->load->model('Model_name');
$this->Model_name->some_function();
现在 load 显然是一个类,并创建了一个实例并称为 load。并且 load 包括类“Model_name”并创建它的一个实例。但我无法解决的部分是,加载类如何创建一个名为“Model_name”的“类变量”,以便在代码的第二行中使用?我将如何在 php 中实现这一点。
谢谢。
【问题讨论】:
标签:
php
class
codeigniter
instance-variables
【解决方案1】:
类的基本作用是记住所有创建的对象(例如 $this),然后通过引用将新创建的类分配为这些类中的变量。
function Load($className)
{
$newClass = new $className();
foreach($this->objects as &$object) //objects is array with created objects
$object->$className = $newClass;
}
然而,它在后台做的事情远不止这些。你知道你可以打开“loader.php”然后阅读它的作用,对吧?
【解决方案2】:
这类事情适用于 PHP 等解释型语言。虽然想象这一点可能会非常令人困惑,特别是如果您有使用 C++、C# 等严格语言的经验。
这个想法是,有一些 PHP 函数可以执行 PHP 代码,并且结果将在脚本的其他地方可见。