【问题标题】: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 代码,并且结果将在脚本的其他地方可见。

      【讨论】:

        猜你喜欢
        • 2017-05-26
        • 2012-01-05
        • 2023-01-12
        • 1970-01-01
        • 2012-12-31
        • 1970-01-01
        • 1970-01-01
        • 2018-11-20
        • 2019-01-21
        相关资源
        最近更新 更多