用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2454|回复: 7
收起左侧

[HELP] 新手问个对象和方法的问题

[复制链接]
发表于 2010-4-5 15:10:26 | 显示全部楼层 |阅读模式
本帖最后由 tempa 于 2010-4-5 15:11 编辑

在看基础,代码中有
PHP复制代码
 
<?php
class Dbtest extends Controller {
 
        function Dbtest() {
                parent :: Controller();
        }
 
        function index() {
                $this->load->helper('form');
                $data['title'] = "Users add.";
                $data['headline'] = "Welcome! to User System.";
                $this->load->vars($data);
                $this->load->view('users');
        }
        function save() {
                $this->load->helper('url');
                $this->load->model('Mdbtest', '', TRUE);
                $this->Mdbtest->addUser();
                redirect('test/thanks', 'refresh');
 
        }
        function thanks() {
                echo "<h1>Thank you !</h1>";
        }
}
?>
 
复制代码

这句中load对象是哪来的?我找了半天没找到出处,$this指的是Dbtest的实例对吧,所以load应该是他或父类的对象,可是向上找
Dbtest -> Controller -> CI_Base -> CI_Loader,到CI_Loader就到头了,都没有找到load属性或方法,后面的helper方法到是在CI_Loader中找到了。
请问这个load是从哪来的?
PHP复制代码
 
$this->load->helper('url');
 
复制代码
发表于 2010-4-5 15:29:59 | 显示全部楼层
回复 1# tempa


    没仔细去看过,不过我猜一下,如果确实没有这样的类,那也许是某个类的别名
 楼主| 发表于 2010-4-5 15:54:34 | 显示全部楼层
别名,哦不懂....我是新手,我是这样想的,load既然能调用helper说明他也是一个实例对象,又叫成员吧,可是咋找都找不到这个成员,成员也有别名么?
发表于 2010-4-5 16:08:54 | 显示全部楼层
回复 3# tempa


    看一下controller。php的82行,我觉得应该是这
 楼主| 发表于 2010-4-5 18:58:09 | 显示全部楼层
本帖最后由 tempa 于 2010-4-5 19:02 编辑

果真是这里,动态成员.....太感谢了....

借机问一下,他为什么不把这个成员声明在类中,写在Controller中呢,为什么用动态的,是制作人员疏忽么,还是为了方便或是什么优化?

因为这样感觉让人很迷惑,也很不好找。
发表于 2010-4-5 20:55:53 | 显示全部楼层
这叫灵活性
 楼主| 发表于 2010-4-5 22:59:49 | 显示全部楼层
可是这样只灵活了作者,并没灵活使用者,你看我们要找到他是多么的麻烦呀。
发表于 2010-4-6 15:13:40 | 显示全部楼层
楼主需要适应性

本版积分规则