首頁 >後端開發 >php教程 >PHP 陣列:按值傳遞還是按引用傳遞?

PHP 陣列:按值傳遞還是按引用傳遞?

Linda Hamilton
Linda Hamilton原創
2024-12-08 21:16:10771瀏覽

PHP Arrays: Pass by Value or Pass by Reference?

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn