代码之家  ›  专栏  ›  技术社区  ›  lovespring

php temp var中的奇怪行为

php
  •  0
  • lovespring  · 技术社区  · 14 年前
    foreach ($arr1 as $v){
     ...
    }
    
    foreach ($arr2 as $v){
     ...
    }
    

    然后,这两个 $v 会有一些奇怪的行为。如果我换第二个 五元 具有 $v2 那么一切都好了。

    4 回复  |  直到 14 年前
        1
  •  1
  •   BoltClock    14 年前

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

        2
  •  0
  •   Josh K    14 年前

    如果你有类似的东西

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

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

        3
  •  0
  •   karim79    14 年前

    任何“奇怪的行为”都可能是因为你在嵌套foreach循环,所以你 需要更改第二个公开的var名称 $v 作为第一 五元 将在第二个(嵌套)foreach的范围内可用。

        4
  •  -1
  •   TRiG    14 年前

    在情况下

    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 循环一个接一个,不是嵌套的,我无法想象你看到了什么奇怪的行为。