php陣列是傳值。 PHP數組傳遞是值傳遞;在呼叫函數時透過將PHP數組作為實參賦給形參,在函數中修改,不會影響到數組本身,說明此過程中的傳遞是值傳遞,數組變數並非指向此數組本身的引用。
本教學操作環境:windows7系統、PHP8版、DELL G3電腦
php陣列是傳值的
PHP中陣列傳遞是值傳遞而非參考傳遞。
在呼叫函數時透過將PHP陣列當作實參賦給形參,在函數中修改,不會影響到陣列本身。
說明此過程中的傳遞為值傳遞,數組變數並非是指向此數組本身的引用,PHP數組本身以值的形式存在,同時形參是對數組的拷貝。
這一點與其他一些語言不同(如c、Js等)很不相同,值得注意!
範例如下:
<?php header("Content-type:text/html;charset=utf-8"); $arr = array( &#39;name&#39; => &#39;corn&#39;, &#39;age&#39; => &#39;24&#39;, ); var_dump($arr); test_arr($arr); function test_arr($arr){ $arr[&#39;name&#39;] = &#39;qqyumidi&#39;; } var_dump($arr); ?>
可以看到就算重新賦值,也沒有影響到原數組本身。
js程式碼如下:
var arr = new Array(&#39;corn&#39;, &#39;24&#39;); test_arr(arr); function test_arr(arr){ arr[0] = &#39;qqyumidi&#39;; } console.log(arr); //result:["qqyumidi", "24"]
如果需要對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中文網其他相關文章!