php变量的范围

时间:2016-03-04 12:50:34

标签: php function scope

我在处理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);
     }
}

现在,在使用临时变量时,解决了同样的问题。但我完全没有意识到上述情况背后的原因。请指导我。

0 个答案:

没有答案