PHP尴尬的函数声明

时间:2012-06-08 19:50:47

标签: php

  

可能重复:
  What does it mean to start a PHP function with an ampersand?

最近我偶然发现了这段代码:

public static function &get_instance()
{
return self::$instance;
}

这种函数声明&get_instance()是什么意思?函数名称可以是变量吗?

2 个答案:

答案 0 :(得分:4)

它是旧式代码中单例模式的一部分。

Singleton是一种模式,用于确保只有一个类的实例。 (从技术上讲,它可以用来确保任何类都有一定数量的实例,但这个数字几乎总是一个。)它是四人组中的一个模式,你可以找到关于它的使用和滥用的无尽讨论通过网络。

答案 1 :(得分:2)

这意味着get_instance()的结果通过引用返回。由于PHP 5之后对象总是通过引用,因此再编写代码是没有意义的。顺便说一下,public也特别好奇,因为这意味着这是PHP 5代码。