【发布时间】:2012-02-04 20:36:17
【问题描述】:
我需要知道为什么我们在 foreach 循环中的变量之前使用 & 符号
foreach ($wishdets as $wishes => &$wishesarray) {
foreach ($wishesarray as $categories => &$categoriesarray) {
}
}
【问题讨论】:
-
重要的问题是循环变量在循环范围之外泄漏(因为 PHP 没有块范围,以使事情更有趣)。因此,如果您稍后分配给循环变量,则会破坏数组。即使您将它用作另一个循环中的循环变量,也会发生这种情况,从而导致非常“有趣”的错误。一个解决方案是在循环之后 unset() 循环变量。