PHP foreach 注意 &$value的使用

1、使用 foreach &$v 命名一样的时候,数组最后一个元素的 $v 引用在 foreach 循环之后仍会保留,建议使用 unset() 来将其销毁,或者使用array_walk(),或者使用不同命名
$user = [
          [
               'id'    => 1,
               'name'  => '小王',
               'age'   => 17,
           ],
           [
               'id'    => 2,
               'name'  => '小吃',
               'age'   => 22,
           ],
       ];
       foreach ($user as &$v) {
           $v['age_text'] = $v['age'] > 17 ? '成年了' : '未成年';
       }

       $goods = [1, 2, 3, 4, 5];
//        unset($v);
       foreach ($goods as $v) {

       }
       halt($user);
// 没有unset($v) 输出结果
array(2) {
  [0] => array(4) {
    ["id"] => int(1)
    ["name"] => string(6) "小王"
    ["age"] => int(17)
    ["age_text"] => string(9) "未成年"
  }
  [1] => &int(5)
}
// 有unset($v) 输出结果
array(2) {
  [0] => array(4) {
    ["id"] => int(1)
    ["name"] => string(6) "小王"
    ["age"] => int(17)
    ["age_text"] => string(9) "未成年"
  }
  [1] => array(4) {
    ["id"] => int(2)
    ["name"] => string(6) "小吃"
    ["age"] => int(22)
    ["age_text"] => string(9) "成年了"
  }
}

foreach 官网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值