我今天遇到了这个问题,想知道为什么在php和js中如何处理数组。
JS
let x = [];
let i = x;
i.push('test');
console.log(x);
//prints ['test']
PHP
$x = [];
$i = $x;
array_push($i, 'test');
print_r($x);
/prints []
在JavaScript中,x
是通过引用i
分配的,而在PHP中则是按值分配的。如果你想让它在PHP中工作,你应该使用:
$i = &$x;
这意味着$i
的任何变化都会影响$x
。见PHP: References