【问题标题】:explaining $this->load->view()解释 $this->load->view()
【发布时间】:2010-04-10 03:38:14
【问题描述】:

在控制器中,您可以使用此方法加载视图,但我想知道这里的幕后发生了什么。

我是 PHP 和框架的新手,但我已经学习了 OOP 的基础知识。

$this->view()被调用时,则使用当前类或父类中的方法。

但是$this->load->view() 是什么意思?什么是中间load?是函数还是属性?

它位于哪里?它怎么可能包含 view()?

感谢解释。

【问题讨论】:

  • 如果您能解释一下您使用的框架会更好。
  • @josh codeigniter,按标签进行
  • @meagar:我猜到了,但$this->load->view() 有点模棱两可。

标签: php oop codeigniter


【解决方案1】:

有问题的代码正在访问一个名为load 的成员变量,它有一个名为view 的方法。

CodeIgniter,按照自己的约定,将其模型和库作为 CI“超级对象”中的成员变量提供,它是您的控制器的一个实例。您可以将所有模型和插件视为单例,其单个实例被分配为 CI 自动创建的控制器的单例实例的成员。

本文中的load 成员是CI_Loader 的一个实例,它负责加载其他模型、视图和库。反过来,它会将它们分配给控制器实例中它们自己的成员变量。

【讨论】:

  • 在哪里可以找到将 CI_Loader 实例化为 $load 的行?用于学习目的。我已经搜索了 $load(因为我想在持有它的类中找到该属性,但找不到匹配项)。
  • 在system/libararies/Controller.php中Controller类的_ci_initialize()方法中
【解决方案2】:

load 是当前对象的一个​​属性。该属性本身包含一个具有view() 方法的对象。

【讨论】:

    【解决方案3】:

    我会阅读有关View ObjectCodeIgniter Wiki Page 以了解更多信息。

    【讨论】:

    • 链接好像坏了。 :-(
    【解决方案4】:

    简单地说,$this 是一个 superclass,它具有 load 属性或对象,view() 是一个方法名称

    $superclass->object->method
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      • 2011-08-11
      • 2010-11-21
      相关资源
      最近更新 更多