可能重复:
What does it mean to start a PHP function with an ampersand?
最近我偶然发现了这段代码:
public static function &get_instance()
{
return self::$instance;
}
这种函数声明&get_instance()
是什么意思?函数名称可以是变量吗?
答案 0 :(得分:4)
它是旧式代码中单例模式的一部分。
Singleton是一种模式,用于确保只有一个类的实例。 (从技术上讲,它可以用来确保任何类都有一定数量的实例,但这个数字几乎总是一个。)它是四人组中的一个模式,你可以找到关于它的使用和滥用的无尽讨论通过网络。
答案 1 :(得分:2)
这意味着get_instance()
的结果通过引用返回。由于PHP 5之后对象总是通过引用,因此再编写代码是没有意义的。顺便说一下,public
也特别好奇,因为这意味着这是PHP 5代码。