PHP temp var中的奇怪行为

时间:2010-09-08 16:22:00

标签: php

foreach ($arr1 as $v){
 ...
}

foreach ($arr2 as $v){
 ...
}

然后,两个$v会有一些奇怪的行为。如果我用$v替换第二个$v2,那么一切正常。

4 个答案:

答案 0 :(得分:1)

如果你没有嵌套循环,请在第一个foreach循环之后和第二个foreach循环之前尝试unset() ting $v

答案 1 :(得分:0)

正在发生的任何“奇怪行为”可能是因为您正在嵌套foreach循环,因此需要将第二个公开的$v的var名称更改为第一个{ {1}}将在第二个(嵌套)foreach的范围内可用。

答案 2 :(得分:0)

如果您有类似

的内容
foreach($arr1 as $v
{
    foreach($arr2 as $v)
    {
        // Code
    }
}

我可以看到一个问题。否则我们需要更好地定义“奇怪的行为”。

答案 3 :(得分:-1)

的情况下
foreach ($arr1 as $v) {
    // some code ...
    foreach ($arr2 as $v) {
        // more code
    }
    // here you might see something unexpected, namely the last $v of the inner loop, not the current $v of the outer loop
}

但是,如果你有两个foreach循环一个接一个,而不是嵌套,我无法想象你看到了什么奇怪的行为。