2012-06-08 97 views
2

可能重複:
What does it mean to start a PHP function with an ampersand?PHP尷尬函數聲明

最近我偶然發現了這段代碼:

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

這是什麼樣的函數聲明&get_instance()平均?函數名稱是一個變量嗎?

+5

這只是不好的和不贊成使用的代碼。 –

+0

反正是什麼意思?及其兼容性? – gopi1410

+0

@OZ_ btw,在探索'codeigniter'時發現它, – gopi1410

回答

4

它是舊式代碼中的單例模式的一部分。

單身人士是一種模式,用於確保只有一個類的實例。 (從技術上講,它可以用來確保任何類的實例有一定數量,但是這個數字幾乎總是一個。)這是四人幫模式之一,你可以找到關於它的使用和濫用的無盡討論通過網絡。

+0

嗯..但究竟是一個單身模式? – gopi1410

+0

請參閱[單例模式](http://en.wikipedia.org/wiki/Singleton_pattern) –

+0

[可能與[使用&符號啓動PHP函數的意思是什麼?]重複(http://stackoverflow.com/questions)/1676897 /它是什麼意思開始一個PHP功能與一個&符)也請參見[參考 - 這個符號在PHP中意味着什麼?](http://stackoverflow.com /問題/ 3737139 /參考什麼 - 做 - 這個符號,均在-PHP) – hakre

2

這意味着get_instance()的結果正在通過引用返回。由於PHP 5以後,對象總是被引用,所以編寫這樣的代碼就沒有意義了。順便說一句,public也特別好奇,因爲這意味着這是PHP 5代碼。