博客
关于我
[PHP] foreach循环的引用赋值可能导致的问题
阅读量:660 次
发布时间:2019-03-15

本文共 497 字,大约阅读时间需要 1 分钟。

foreach($arr as &$value)

1.引用赋值符号&,是每次循环的时候,把当前元素变成地址,$value变量就是对应元素的地址,循环结束$value是一个指向最后一个元素的地址
2.当我下次循环,使用了这种方式foreach($arr as $value) ,会出现问题;foreach会把每个元素赋值给后面的$value变量
3.因此,逻辑就变成了,把每个元素修改给原数组的最后一个元素,最后一次循环会一直是前一次的结果
4.最好不用引用传递,用这种形式$arr[$key]改原数组,或者在下次循环时候换一个变量名

$nums=array(1,2,3);foreach($nums as &$v){        var_dump($v);}/*int(1)int(2)int(3)*/var_dump($nums);/*array(3) {  [0]=>  int(1)  [1]=>  int(2)  [2]=>  &int(3)}*/foreach($nums as $v){        var_dump($v);}/*int(1)int(2)int(2)*/

  

转载地址:http://emnmz.baihongyu.com/

你可能感兴趣的文章
NLP采用Bert进行简单文本情感分类
查看>>
NLP问答系统:使用 Deepset SQUAD 和 SQuAD v2 度量评估
查看>>
NLP项目:维基百科文章爬虫和分类【02】 - 语料库转换管道
查看>>
NLP:从头开始的文本矢量化方法
查看>>
NLP:使用 SciKit Learn 的文本矢量化方法
查看>>
NLTK - 停用词下载
查看>>
nmap 使用总结
查看>>
nmap 使用方法详细介绍
查看>>
nmap使用
查看>>
nmap使用实战(附nmap安装包)
查看>>
Nmap哪些想不到的姿势
查看>>