浏览codeigniter的源码,
在它的辅助函数中,我不断看到代码
$CI =& get_instance();
谁能给我解释一下这段代码是如何工作的?
我知道它正在返回对 $CI super 对象的引用,但是 get_instance()
来自哪里?
最佳答案
基本上是 Singleton Design Pattern使用函数而不是静态方法。
要深入了解,请查看 source code
所以基本上,它不会强制执行单例,但它是公共(public)函数的快捷方式...
编辑:其实,现在我明白了。为了与 PHP4 兼容,他们必须执行 double-global-variable-hack让它正确返回引用。否则引用文献会搞砸的。而且由于 PHP4 不支持静态方法(好吧,无论如何都是正确的),使用该函数是更好的方法。所以由于遗留原因它仍然存在......
因此,如果您的应用程序仅是 PHP5,那么 应该 执行 CI_Base::get_instance();
并没有什么问题,相反,它是相同的...
关于php - 解释 $CI =& get_instance();,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4740430/