tempa 发表于 2010-4-5 15:10:26

新手问个对象和方法的问题

本帖最后由 tempa 于 2010-4-5 15:11 编辑

在看基础,代码中有

<?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是从哪来的?

$this->load->helper('url');

jeongee 发表于 2010-4-5 15:29:59

回复 1# tempa


    没仔细去看过,不过我猜一下,如果确实没有这样的类,那也许是某个类的别名

tempa 发表于 2010-4-5 15:54:34

别名,哦不懂....我是新手,我是这样想的,load既然能调用helper说明他也是一个实例对象,又叫成员吧,可是咋找都找不到这个成员,成员也有别名么?

jeongee 发表于 2010-4-5 16:08:54

回复 3# tempa


    看一下controller。php的82行,我觉得应该是这

tempa 发表于 2010-4-5 18:58:09

本帖最后由 tempa 于 2010-4-5 19:02 编辑

果真是这里,动态成员.....太感谢了....{:3_62:}

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

因为这样感觉让人很迷惑,也很不好找。

visvoy 发表于 2010-4-5 20:55:53

;P这叫灵活性

tempa 发表于 2010-4-5 22:59:49

可是这样只灵活了作者,并没灵活使用者,你看我们要找到他是多么的麻烦呀。{:3_55:}

visvoy 发表于 2010-4-6 15:13:40

:lol楼主需要适应性
页: [1]
查看完整版本: 新手问个对象和方法的问题