【问题标题】:what is $this->load->view() in CodeIgniterCodeIgniter 中的 $this->load->view() 是什么
【发布时间】:2016-05-15 19:56:01
【问题描述】:

$this 用于当前类,view 是方法,但 load 是什么。这是财产吗?

这个例子正确吗?

class super{

    public $property;

    public function superf1()
    {
        echo "hello";
    }
    public function col()
    {
        $this->superf1();
    }

    $this->property->super1();

}

【问题讨论】:

标签: php codeigniter oop


【解决方案1】:

您的控制器继承CI_Controller。所以,如果你查看application/system/core/Controller.php,你会发现一些有趣的东西:$this->load =& load_class('Loader', 'core');(l.50 with CI2)。所以,$this->load 指的是文件application/system/core/Loader.php,它有一个函数public function view(l.418 with CI2)

【讨论】:

    【解决方案2】:

    是的,load 是一个属性。 可以这样想:

    class Loader {
        public function view() {
            //code...
        }
    }
    
    class MyClass {
         private $load;
    
         public __constructor() {
             $this->load = new Loader();
         }
    
         public someMethod() {
             $this->load->view();
         }
    }
    

    这种语法称为链接。

    【讨论】:

    • 非常有帮助。谢谢 load = new Loader(); $this->load->view(); } } $m = new MyClass(); $m->someMethod(); ?>
    【解决方案3】:

    在扩展CI_Controller(换句话说:控制器)的类的上下文中,符号$this 是Codeigniter“超级对象”。它或多或少是 CI 站点的中心对象,并且包含(除其他外)加载类的列表。 load 是您总能在其中找到的类之一,因为它是由 CI 系统自动加载的。

    从技术上讲,该类创建CI_Loader 类型的对象。 view() 只是load 类中的众多方法之一。其他常用的类方法有model()library()config()helper()database()。还有其他的。

    所以,简而言之,load 是一个用于加载其他资源的类。

    【讨论】:

      【解决方案4】:

      load是属于加载器类的类 codeigniter official documentation

      viewmodel 等是methods

      【讨论】:

        【解决方案5】:

        在 PHP 8.1 中 使用return("viewname", $data)

        【讨论】:

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