jaka 发表于 2011-4-21 17:39:07

请问CI_Controller::get_instance()是返回CI_Controller的实例化对象么

看到源代码里面定义有个get_instance()函数,返回的就是CI_Controller::get_instance(),可是我找不到任何实例化对象的代码(比如应该有个new xxx()),所以不知道这个函数到底返回了什么。
有人知道能解释一下么?谢谢

jeongee 发表于 2011-4-21 18:12:18

呵呵,返回的就是CI的超级类了,也就是CI_Controller本身,也就是你在控制器中用的$this,CI中的类都是单例的,只会初始化一次的,CI_Controller类的初始化你可以在system/core/CodeIgniter.php中找到~~

jaka 发表于 2011-4-21 18:33:38

谢谢jeongee,可我实在不明白它是怎么初始化的,因为没有看到new CI_Controller()这样的句子,只看到return self::$instance;,这个只是返回实例
主要还是不明白CI_Controller实例是怎么构造出来:dizzy:

jeongee 发表于 2011-4-21 18:54:39

回复 3# jaka


   呵呵,那是个单例,你搜下PHP单例

jaka 发表于 2011-4-21 19:20:01

谢谢版主,我明白了,当子类控制器实例化的时候,基类CI_Controller会自动执行构造函数。

lianke123 发表于 2011-8-9 10:41:00

学习了,不错,刚才就用到了{:1_1:}
页: [1]
查看完整版本: 请问CI_Controller::get_instance()是返回CI_Controller的实例化对象么