在PHP 中處理陣列:按值或引用傳遞
在PHP 中使用陣列時,了解分配給new 時如何處理它們變數或傳遞給函數至關重要。
陣列賦值
將陣列賦值給變數時(例如 $b = $a),PHP 總是執行值複製。這表示對新變數 ($b) 所做的變更不會影響原始陣列 ($a),反之亦然。如果需要建立原始陣列的引用,則必須使用引用運算子 ($b =& $a)。
將陣列傳遞給函數
時數組作為參數傳遞給函數,通常會以值複製。這意味著在函數內進行的修改不會修改原始數組。若要透過引用傳遞數組,必須在參數之前使用 & 符號宣告函數(例如,function my_func(& $a))。
範例程式碼
為了說明這一點,請考慮以下 PHP程式碼:
function my_func($a) { $a[] = 30; } $arr = array(10, 20); my_func($arr); var_dump($arr);
輸出(透過值):
array 0 => int 10 1 => int 20
輸出(透過引用傳遞):
array 0 => int 10 1 => int 20 2 => int 30輸出(透過引用傳遞):輸出(透過引用傳遞):輸出(透過引用>如圖所示,函數內所做的更改僅在以下情況下影響陣列:它是透過引用傳遞的。
以上是PHP 陣列:按值傳遞還是按引用傳遞?的詳細內容。更多資訊請關注PHP中文網其他相關文章!