码迷,mamicode.com
首页 > Web开发 > 详细

PHP中使用foreach时加&符号的用法

时间:2019-01-12 13:16:37      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:出现   问题   符号   key   用法   encode   family   color   for   

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"]

 

PHP中使用foreach时加&符号的用法

标签:出现   问题   符号   key   用法   encode   family   color   for   

原文地址:https://www.cnblogs.com/woods1815/p/10259118.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!