zxwo0o 发表于 2010-4-24 00:16:32

关于 控制器中 $this->load 变量

刚刚开启接触 CI , 其中看到了关于控制器中load 这个变量.找了好久都没有发现在哪里声明定义的.

哪位能帮忙解释下吗 ?

visvoy 发表于 2010-4-24 01:29:15

在 system/codeigniter/ 目录里找

navy92f 发表于 2010-4-24 08:06:25

这个在system/codeigniter下 好像找不到吧?(用base5.php)因为他并不在前台控制器里加载。

这个load是library下loader.php里面 ci_loader类的实例,应该算是ci的核心类了,用于加载试图,类库,模型等。

visvoy 发表于 2010-4-24 08:27:50

刚刚开启接触 CI , 其中看到了关于控制器中load 这个变量.找了好久都没有发现【在哪里声明】定义的.

哪位 ...
zxwo0o 发表于 2010-4-24 00:16 http://codeigniter.org.cn/forums/images/common/back.gif

ls注意红字部分

navy92f 发表于 2010-4-24 12:16:36

这样的话应该是在controller这个类里面定义的(library/controller.php ) 就是你的控制器继承的父类 在他的构造函数中会初始化一些类 其中就有loader这个类 付给load这个变量
下面的代码来在 library/controller.php
// In PHP 5 the Loader class is run as a discreet
                // class.In PHP 4 it extends the Controller
                if (floor(phpversion()) >= 5)
                {
                        $this->load =& load_class('Loader');
                        $this->load->_ci_autoloader();
                }

zxwo0o 发表于 2010-4-24 23:11:24

恩 多谢了,   其实我语法学的没过关造成的, 不懂得$this->load =& load_class('Loader');这样也算是给当前这个类添加一个成员.   因为原来学的是C++ 在 C++ 里是没有这样的用法的.   就在那里一直找变量声明.    一时还没转过来.

Hex 发表于 2010-4-25 23:55:04

语言和语言还是有区别的,否则就不叫 PHP 而叫 C++ 了,呵呵

Uyson 发表于 2010-4-29 17:31:54

其实就是新建一个Loader 类然后把这个复制Controller的load变量,我们所用的this->load->model(),this->load->view(),的方法就在Loader 里面定义的

wesong 发表于 2010-5-9 01:27:10

用netbean吧。按住ctrl点击调用时的方法或是类名,直接到声明部分。
页: [1]
查看完整版本: 关于 控制器中 $this->load 变量