php - JavaScript中把一个关联数组a赋值给b,然后改变a的内容,为什么b也跟着发生变化?
本文介绍了php - JavaScript中把一个关联数组a赋值给b,然后改变a的内容,为什么b也跟着发生变化?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
JS:
var a = {"Client":"jQuery","Server":"PHP"};
var b = a;
a["New"] = "Element";
console.log(b);
// 输出 Object { Client="jQuery", Server="PHP", New="Element"}
PHP例程1:
$a = array('Client'=>'jQuery','Server'=>'PHP');
$b = $a;
$a['New'] = 'Element';
var_export($b);
//输出 array('Client'=>'jQuery','Server'=>'PHP')
PHP例程2:
$a = array('Client'=>'jQuery','Server'=>'PHP');
$b = &$a; //引用赋值
$a['New'] = 'Element';
var_export($b);
//输出 array('Client'=>'jQuery','Server'=>'PHP','New'=>'Element')
JavaScript中把一个关联数组a赋值给b,然后改变a的内容,为什么b也跟着发生变化?
解决方案
对于数组这种非普通类型(字符串,整型,布尔),你的赋值相当于地址拷贝,就是a、b占用了同一段地址。所以改了b,a也会变,本质上a、b就是一个东西。
这篇关于php - JavaScript中把一个关联数组a赋值给b,然后改变a的内容,为什么b也跟着发生变化?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文