核心差異:JavaScript 陣列為引用傳遞(地址傳遞),PHP 陣列預設為值傳遞(複製傳遞)。這導致函數內修改陣列對外部影響截然不同。
<?php
$arr = array(3, 9, 4);
function test($arr){
$arr[0] = 30;
}
test($arr);
foreach($arr as $val){
echo $val . " "; // 輸出:3 9 4(原陣列未變)
}
?>
<script language="javascript" type="text/javascript">
var myarr = [343, 90, 28];
function abc(arr){
arr[0] = 35;
}
abc(myarr);
document.writeln(myarr[0]); // 輸出:35(原陣列被修改)
</script>
| 語言 | 傳遞機制 | 函數內修改後外部陣列 |
|---|---|---|
| PHP | 值傳遞(Copy-on-Write 優化) | 不變 |
| JavaScript | 引用傳遞 | 同步變化 |
&:function test(&$arr)