變數預設總是傳值賦值。那也就是說,當將一個表達式的值賦予一個變數時,整個原始表達式的值被賦值到目標變數。這意味著,例如,當一個變數的值賦予另一個變數時,改變其中一個變數的值,將不會影響到另一個變數。
PHP也提供了另一種方式來給變數賦值:引用賦值。這意味著新的變數簡單的引用(換言之,“成為其別名” 或 “指向”)了原始變數。改動新的變數將影響到原始變量,反之亦然。使用引用賦值,簡單地將一個 & 符號加到將要賦值的變數前(來源變數)。
物件預設是傳引用。對於較大的數據,傳引用比較好,這樣可以節省記憶體的開銷。
註:
按值傳遞:函數內對值的任何改變在函數外部都會被忽略。
引用傳遞:函數內對值的任何改變在函數外部也能反映出這些修改。
套用場景:按值傳遞時,php必須複製值,而按引用傳遞則不需要複製值,故引用傳遞一般用於大字串或物件。
優缺點:
按值傳遞時,php必須複製值。對於大型字串和物件來說,這樣做代價很大。按引用傳遞則不需要複製值,對於效能提高有好處。
以上是php什麼時候傳值或傳引用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!