php中 foreach引用(&)的问题
2017-09-26 17:50
686 查看
$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
1 2 2 2
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){}
相关文章推荐
- PHP的foreach中使用引用时需要注意的一个问题和解决方法
- php在foreach中使用引用赋值&可能遇到的问题
- PHP中的&传值引用的问题,在foreach循环的结果能帮解释下输出的结果原理是什么?
- PHP中使用foreach和引用导致程序BUG的问题介绍
- 探讨PHP引用&符号的一些注意问题
- PHP的foreach中使用引用时需要注意的一个问题和解决方法
- 探讨PHP引用&符号的一些注意问题
- 【php】foreach中使用引用引起的问题
- PHP中使用foreach引用需要注意的问题
- PHP中使用foreach和引用导致程序BUG的问题介绍
- php中foreach与引用的一个问题。。
- PHP的foreach语句使用引用变量的问题
- 探讨PHP引用&符号的一些注意问题
- PHP数组foreach引用问题
- PHP中foreach有关引用的问题
- php的array数组 -------方法foreach循环时候,利用数组里值的引用地址(& )从而改变数组里的值
- PHP foreach &怪异问题
- php中foreach中地址引用问题
- 单入口框架使用$_SERVER['PHP_SELF']遇到的问题
- ini_set('memory_limit', '128M')、php.ini memory_limit引起的问题详细介绍