已經很徹底地解釋過,只有在PHP中引用時,如果它們是技術原因這樣做,因爲基本上Copy-On-Write使性能相當。從我所瞭解的情況來看,如果它永遠不會改變,它永遠不會複製對象。通過引用傳遞(當變量可以改變,但沒有必要)
但是如果函數確實改變了變量,但是你的代碼再也不會使用它/不使用任何被改變的部分呢?如果原始文件被更改,則代碼無關緊要。是的,PHP優化器可能會考慮到這種情況,但我沒有理由相信它。
傳遞一個單引用肯定會比複製一個巨大的數組或對象快得多。
那麼這是好的情況,通過引用或不?
例如,假設你傳入一個DomCrawler(不過是一個大的[html格式]字符串,除非它在這個特定情況下通過引用隱式傳遞)。抓取一點並提取一些信息。在許多情況下,您不需要爬行程序重置到其原始位置,因爲您只是不再使用它。 另外,想象後者,我們使用DOMCrawler,我們從中讀取URI。函數沒有改變這個,所以通過引用或值傳遞仍然是等價的,但是通過引用傳遞不會顯着更優化?我認爲這種情況對於任何優化器都很難發現。
有啥問題,重用? – kennypu 2013-03-11 06:17:54
而你的問題是?你不是在猜測設計PHP的人,你是?因爲這太冒昧;) – paulsm4 2013-03-11 06:17:56
我永遠不會明白爲什麼SO討厭/不太理解隱含的問題。 更新的問題。 – Jonathon 2013-03-11 06:19:38