2009-07-08 79 views

回答

7

只有對象通過引用傳遞。

這並不意味着您可以通過更改引用來獲得性能提升--PHP使用寫時複製,因此只有在修改變量時纔會生成副本。

將代碼分割成函數不會減慢它的速度。 調用一個函數有一個小的開銷,但除非你在一個循環中調用了10,000個函數,否則它可能不是你需要擔心的。

+2

對象不通過引用傳遞。對象是引用類型,但除非另行指定,否則它們將作爲函數參數傳遞。 – Joseph 2009-07-08 12:59:10

1

是的,原語是由值來傳遞除非顯式定義通過引用傳遞(通過在參數的前需使用符號&)或用在參數的前方的符號調用該函數的函數。 (後者已棄用)

請參閱this part of the documentation瞭解更多信息。

編輯

另外,在PHP的「對象是通過引用傳遞」的說法是有點簡單化,雖然它往往可以在大多數情況被認爲是這樣的。這chapter of the documentation解釋了不同之處。

1

通過引用傳遞實際上比在PHP中傳遞值慢。我找不到這個說法的正確引用;它位於PHP手冊的「參考」部分。