解释 $CI =& get_instance();
2022-08-30 07:57:18
浏览代码的源代码,
在其帮助器函数中,我不断看到代码,任何人都可以向我解释一下此代码的工作原理吗?$CI =& get_instance();
我得到它返回对$CI超级对象的引用,但是从哪里来?get_instance()
浏览代码的源代码,
在其帮助器函数中,我不断看到代码,任何人都可以向我解释一下此代码的工作原理吗?$CI =& get_instance();
我得到它返回对$CI超级对象的引用,但是从哪里来?get_instance()
它基本上是一个单例设计模式,它使用函数而不是静态方法。
要深入了解,请查看源代码
所以基本上,它不强制执行单例,但它是公共功能的捷径......
编辑:实际上,现在我明白了。对于 PHP4 兼容性,他们必须执行双全局变量 hack 才能使其正确返回引用。否则,引用将全部搞砸。由于PHP4不支持静态方法(好吧,无论如何都是正确的),因此使用该函数是更好的方法。因此,由于遗留原因,它仍然存在...
因此,如果您的应用程序只是PHP5,那么这样做应该没有什么问题,它是相同的......CI_Base::get_instance();
get_instance() 是 CodeIgniter 核心文件中定义的函数。当您处于超级对象之外的作用域中时,您可以使用它来获取对 CodeIgniter 超级对象的单例引用。
我很确定它是在base.php或类似的东西中定义的。