首頁 > 後端開發 > PHP問題 > php數組是傳值還是引用

php數組是傳值還是引用

青灯夜游
發布: 2023-03-17 18:06:02
原創
3418 人瀏覽過

php陣列是傳值。 PHP數組傳遞是值傳遞;在呼叫函數時透過將PHP數組作為實參賦給形參,在函數中修改,不會影響到數組本身,說明此過程中的傳遞是值傳遞,數組變數並非指向此數組本身的引用。

php數組是傳值還是引用

本教學操作環境:windows7系統、PHP8版、DELL G3電腦

php陣列是傳值的

PHP中陣列傳遞是值傳遞而非參考傳遞。

在呼叫函數時透過將PHP陣列當作實參賦給形參,在函數中修改,不會影響到陣列本身。

說明此過程中的傳遞為值傳遞,數組變數並非是指向此數組本身的引用,PHP數組本身以值的形式存在,同時形參是對數組的拷貝。

這一點與其他一些語言不同(如c、Js等)很不相同,值得注意!

範例如下:

<?php
header("Content-type:text/html;charset=utf-8");
$arr = array(
    'name' => 'corn',
    'age' => '24',
);
var_dump($arr);
test_arr($arr);
function test_arr($arr){
    $arr['name'] = 'qqyumidi';
}
var_dump($arr); 
?>
登入後複製

php數組是傳值還是引用

可以看到就算重新賦值,也沒有影響到原數組本身。

js程式碼如下:

var arr = new Array('corn', '24');
test_arr(arr);
function test_arr(arr){
    arr[0] = 'qqyumidi';
}
console.log(arr);  //result:["qqyumidi", "24"]
登入後複製

php數組是傳值還是引用

如果需要對PHP中的值傳遞使用參考傳遞效果,可以在形參前面加上取位址符&

<?php
header("Content-type:text/html;charset=utf-8");
$aa = 100;
echo "原变量值:".$aa; 
test_vars($aa);
function test_vars(&$aa){
    $aa = 200;
}
echo "<br>修好后:".$aa;    //result: 200
?>
登入後複製

php數組是傳值還是引用

說明:

#在PHP中,大部分變數類型,如字串,整數,浮點,陣列等都是值類型的,而類別和物件是引用類型,在使用的時候,需要注意這一點。

推薦學習:《PHP影片教學

以上是php數組是傳值還是引用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板