【发布时间】:2015-09-25 21:09:13
【问题描述】:
据我了解,当您将变量传递给函数时,如果您不使用参考符号 (&) ,则意味着函数内部的任何更改都不会影响函数外部的变量。换句话说,这意味着编译器将复制外部变量以使用内部函数,不是吗?
但是当我运行这些测试代码时,它不会那样发生。 谁能解释一下我在这里想念什么?谢谢
我的测试代码:预期的结果应该是3,结果变成了1?
function test($arr2) {
foreach($arr2 as &$item) {
$item = 1;
}
}
$arr = array(2);
foreach($arr as &$item2) {
$item2 = 3;
}
test($arr);
print_r($arr);
【问题讨论】:
-
foreach($arr2 as &$item) {从$item中删除&