您的位置:首页 > 编程语言 > PHP开发

PHP 5下foreach引用导致程序出错

2011-06-06 09:39 363 查看
原文地址:http://blog.fj18.com/post/189.html

今天和同事在调试一段代码时,死活找不出哪里出错,后来一步一步找,在一个看似不可能出问题的地方出问题了,代码类似下面这样:

$array1
=
array
(
1
,
2
)
;

$array2
=
array
(
3
,
4
)
;

foreach
(
$array1

as
&
$item
){

}

foreach
(
$array2

as

$item
){

}

echo

$array1
[
1
]
;

这时得到的值是多少?我们想要的是2吧,但程序输出的却是4!

这是为什么呢?

在第一个循环完成后$array1[1] == $item,这时继续第二个循环,完成后就成了$array2[1] == $item == $array1[1],因为第一个循环是引用,所以在第二个循环后$array1[1] == $array2[1]。

一个教训,以后在使用临时变量时,2种办法至少要用上一种:

1、在使用临时变量前先unset(临时变量);

2、在用完临时变量后unset(临时变量);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: