这一课我不明白

这一课我不明白

老师,课程里面foreach在循环的时候unset了数组的一个元素,结果是不影响循环,却影响了数组

foreach在循环的时候添加一个元素,结果是影响了循环,也影响了数组

这是怎么回事

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小尤 2019-06-05 10:39:24

同学你好,php7版本在foreach中删除数组中的某元素,不会影响循环中的数据。在foreach循环中删除了数组中的某元素,会影响到数组。代码如下:

<?php
    // foreach 通过值遍历时,操作的值为数组的副本
    $arr=[0,1,2];
    $ref=&$arr;
    // PHP7的新特性不会影响循环数据,而老版本会影响数据跳过1,输出0,2
    foreach($arr as $val){ 
    //$arr现在还是1,2,3在循环中删除数据1并没有影响到循环,所以输出$val是1,2,3
      echo $val,'<br/>';  
      unset($arr[1]);
    }
    // 在循环里面删除1影响数据,所以最后输出0,2
    var_dump($arr,$ref);
    echo '<hr/>';

祝学习愉快!

  • 提问者 慕虎0232237 #1
    是的,但是在foreach循环中,给数组添加一个元素,又会影响循环,同时影响数组
    2019-06-05 17:19:45
  • 好帮手慕小尤 回复 提问者 慕虎0232237 #2
    同学你好,在循环里面添加数组元素是会影响到本次循环的数据。在添加元素时会进行赋值处理,所以有所影响。但删除元素时不会影响到本次循环的数据。祝学习愉快!
    2019-06-05 19:19:43
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4930    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师