&get_instance为什么能获取超级对象?
将ci的源码大致过了一遍,在论坛和网上也找了相关源码分析的文章,对于它的内部实现流程基本清楚了。有个问题一直没有像透彻。
Base5.php
它有个Ci_base基类
中有个function get_instance(){ Ci::base::get_instance}
而Controller类是继承这个Ci_base的。
现在是的问题是$ci = & get_instance()就能获取一个全局的超级对象,就能$ci->config$ci->uri 等等之前加载过的类。
我的疑问:为什么它get_instance()能获取全局对象的实例?
我看过《php敏捷开发框架》中第七章的Codeigniter和对象,其中讲到了这个&get_instance的问题,不过我理解的还是有点不太透彻。
哪位朋友对这个理解的比较深的,麻烦告知一下。谢谢。 就是单件模式,controller把自身引用保存到静态变量CI_Base:: $instance(在其自身的构造函数完成这个动作),get_instance()获得这个静态变量就是controller的唯一对象
页:
[1]