查看codeigniter的源代码,
在它的助手函数中,我不断看到代码
我知道它返回了一个对$CI超级对象的引用,但是get_instance()
是从哪里来的呢?
查看codeigniter的源代码,
在它的助手函数中,我不断看到代码
我知道它返回了一个对$CI超级对象的引用,但是get_instance()
是从哪里来的呢?
它基本上是使用函数而不是静电方法的Singleton Design Pattern.
要更深入地观察,请查看source code
所以基本上,它不强制执行单例,但它是通向公共函数的捷径...
实际上,现在我明白了.为了与PHP4兼容,他们必须执行double-global-variable-hack才能使其正确返回引用.否则,所有的参考资料都会被搞得一团糟.由于php4不支持静电方法(好吧,无论如何都是正确的),所以使用函数是更好的方式.所以由于遗留的原因它仍然存在…
所以,如果你的应用程序只有PHP5,那么改为CI_Base::get_instance();
也没什么错,它是一样的...