时间: 2020-09-4|tag:17次围观|0 条评论

foreach时加&符号:遍历的同时改变原数组即修改数据或者增加数据。

$arr = ['a', 'b', 'c'];foreach ($arr as $key => &$value) {    $value = $value . '111';}echo json_encode($arr);      // ["a111","b111","c111"],这里改变了原来数组的值

使用&可能出现的问题:

$arr = ['a', 'b', 'c'];foreach ($arr as $key => &$value) {    $value = $value . '111';} foreach ($arr as $key => $value) {    $value = $value . '222';}echo json_encode($arr);      // ["a111","b111","b111222222"]

这是由于在使用赋值引用传递之后没有释放$value的值,所以会影响第二个foreach的使用。可以使用unset($value)释放变量。

$arr = ['a', 'b', 'c'];foreach ($arr as $key => &$value) {    $value = $value . '111';}unset($value);     // 释放$value的引用传递foreach ($arr as $key => $value) {    $value = $value . '222';}echo json_encode($arr);      // ["a111","b111","c111"]

 

文章转载于:https://www.cnblogs.com/woods1815/p/10259118.html

原著是一个有趣的人,若有侵权,请通知删除

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《PHP中使用foreach时加&符号的用法
   

还没有人抢沙发呢~