我在处理php变量时遇到了一个问题。
有以下2个阵列 -
$fruits = array();
$persons = array();
它们被用于以下foreach循环 -
foreach ($fruits as $name => $prop) {
foreach ($persons as $person) {
assignToPerson($name);
}
}
function assignToPerson($name) {
..data processing..
}
假设,对于$ fruits的第一次迭代,$ persons迭代5次,每次从第二个foreach循环内部调用assignToPerson()
。 $persons
的第一次迭代一切顺利,但在第二次迭代$name
被销毁并传递一个空白值。即使我没有在函数$name
中使用assignToPerson()
变量。
我找到了解决方法 -
foreach ($fruits as $name => $prop) {
$tmp = $name;
foreach ($persons as $person) {
assignToPerson($tmp);
}
}
现在,在使用临时变量时,解决了同样的问题。但我完全没有意识到上述情况背后的原因。请指导我。