php - 解释 $CI =& get_instance();

浏览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/

相关文章:

php - 将秒转换为天、小时、分钟和秒

php - 日期减去 1 年?

php - Ubuntu 在终端输入 'php' 显示很多错误

php - 在 Symfony2 中访问与 Bundle 相关的文件

php - 如何使用 PHP 检查远程文件是否存在?

php - GD vs ImageMagick vs Gmagick for jpg?

php - PHP中的静态类初始化器

php - 生成随机 5 个字符的字符串

php - 如何使用 PHP 从字符串中删除最后一个逗号?

php - 防止 Laravel 向数据透视表添加多条记录