首页 > 解决方案 > 为什么你可以在 JS 中推送到数组引用而不是 PHP

问题描述

我今天遇到了这个问题,想知道它为什么会在 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 []

标签: javascriptphp

解决方案


那么在 JavaScriptx中是通过引用分配的,i而在 PHP 中它是按值分配的。如果你想让它在 PHP 中工作,你应该使用:

$i = &$x;

这意味着任何更改$i都会影响$x. 请参阅PHP:参考资料


推荐阅读