php中 foreach引用(&)的问题
来源:互联网 发布:seo转行前端开发 编辑:程序博客网 时间:2024/05/22 01:49
$a = array("1", "2", "3");
foreach ($a as &$val)
{
echo $val." ";
}
echo $val." <br>";
foreach ($a as $val)
{
echo $val." ";
}
echo $val." ";
输出:
1 2 3 3
foreach ($a as &$val)
{
echo $val." ";
}
echo $val." <br>";
foreach ($a as $val)
{
echo $val." ";
}
echo $val." ";
输出:
1 2 3 3
1 2 2 2
原因:
foreach ($a as &$val)
把$val指向每个元素的地址。当循环完的时候,$val指向的是$a最后一个元素3的地址。
第二次遍历foreach ($a as $val)将每个元素依次赋值到最后一个地址上。
数组$a的变化循环第一次[1,2,1],第二次[1,2,2],第三次次[1,2,2]
避免这个问题,要在第一次foreach循环后加上
foreach ($a as &$val){}
unset($val); //加上这句,取消$val对地址的引用,程序恢复正常。
foreach ($a as $val){}
阅读全文
0 0
- php中 foreach引用(&)的问题
- php中foreach与引用的一个问题。。
- 【php】foreach中使用引用引起的问题
- php foreach循环关于&引用的问题
- php在foreach中使用引用赋值&可能遇到的问题
- php foreach中使用了传值引用&赋值可能造成的问题
- 【PHP】 foreach循环中变量引用的一道面试题
- 说说PHP中foreach引用的一个坑
- PHP的引用和foreach循环
- PHP foreach使用 &引用 的坑
- PHP foreach 引用
- PHP foreach中的引用(&)
- PHP在foreach中对$value赋值无效的问题
- php中foreach()的用法
- php中foreach()的用法
- php中foreach()的用法
- php中foreach()的用法
- PHP中foreach的使用
- response.sendRedirect()与request.getRequestDispatcher().forward()区别
- LeetCode编程练习
- 手工部署Java Web项目【阿里云教程】
- jQuery.inArray( value, array [, fromIndex ] )
- eclipse使用教程(已安装jdk,eclipse,配好环境变量)
- php中 foreach引用(&)的问题
- php多维数组平均值
- java如何安全的延迟初始化
- static变量/方法,与基类父类执行的先后顺序
- Java多线程系列--“基础篇”08之 join()
- ubuntu14.04编译openjdk7
- Problems & Solutions -- 9 No Socket could be created
- android studio转成依赖项目lib再连同资源文件一起打jar包过程
- 面试问题组合和聚合有什么区别