谁一开始就是大神?

修改数组值加&符号[1.1]

&$value$value在这里区别是什么,修改元素为什么一定要加&符号?

$data = '[{"id":"40","num":"6"},{"id":"32","num":"3"}]';
$data = json_decode($data,true);
echo '<pre>';
var_dump($data);echo '<br>';
foreach ($data as $key => **&$value**) {//这里不加&就修改不了  	
    $value['num'] = '10';
}
			
var_dump($data);
}

&代表取引用,一般用于函数入参,代表在函数内直接引用变量的原始值。如果没有加&,在函数内对入参的修改是不会影响到外面的变量的。比如:
foreacch语句你可以理解为一个特殊的“函数”,$key,$value可以理解为函数的入参,如果你在foreach遍历语句内需要修改原始值,必须得加&代表传引用进来。
当然,如果是引用类型(某class的实例)这种,你不加&也可以在函数内修改原始值,比如:
foreach ($data as $key => &$value) {//这里不加&就修改不了

赞(0) 打赏
未经允许不得转载:菜鸟之家 » 修改数组值加&符号[1.1]

评论 抢沙发

登录

找回密码

注册