foreach ($cc as $key => &$item);$item加&与不加&的区别

本文探讨了PHP中foreach循环中使用`$item`前加`&`符号与不加的区别。`&`表示引用赋值,意味着对数组元素的修改将在循环结束后仍然保留,而不加`&`则是拷贝赋值,修改仅限于循环内部。了解这一差异对于避免意外的数据修改至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    public function test(){        
            // 加&的:            
            $cc = [[1],[2]];
            foreach ($cc as $key => &$item){
                $item['aa'] = 111;
            }
            var_dump($cc);die;

            // 不加&的
            $cc = [[1],[2]];
            foreach ($cc as $key => $item){
                $item['aa'] = 111;
            }
            var_dump($cc);die;

            // 不加&,又想达到加&的效果
            $cc = [[1],[2]];
            foreach ($cc as $key => $item){
                $cc[$key]['aa'] = 111;
            }
            var_dump($cc);die;

            // 所以foreach中$item加&应该是为了偷个懒吧
            // 这里还涉及指针的知识,有兴趣的推荐了解一下哦
    }
// 加&输出的结果:
array(2) {
  [0]=>
  array(2) {
    [0]=>
    int(1)
    ["aa"]=>
    int(111)
  }
  [
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值