2014-07-23 68 views

回答

7

這並非總是如此。在PHP4中,一個對象被分配給一個新變量時被複制。當PHP5被引入時,這改變了傳遞被分配對象的引用。

From the manual

在PHP 5有一個新的對象模型。 PHP的對象處理已經完全重寫,可以獲得更好的性能和更多的功能。在以前的PHP版本中,對象被處理爲基本類型(例如整數和字符串)。這種方法的缺點是,在分配變量或作爲參數傳遞給方法時,會在語義上覆制整個對象。在新方法中,對象由句柄引用,而不是由值引用(可以將句柄看作對象的標識符)。

+0

爲了澄清,文檔明確指出,PHP 5中的副本是標識符**的**副本,而不是該對象本身的副本。約翰所描述的是正確的,並且同意文件。 – Brad

+2

用更多的人類語言,$ b是$ a的別名a a – DarkBee

+1

在Linux語言中,$ b是$ a的符號鏈接。在Windows語言中,$ b是$ a的快捷方式。這個比喻不要殺我。 :) –

相關問題