先感谢此网页给我的指导 http://www.netingcn.com/php-foreach-pass-value-reference.html 现在我得知: 如果数组里面存放的是普通类型的元素就是采用传值的方式,存放对象类型元素采用的方式为传地址。
代码:
$raw_arr = array(
(object)(array('id' => 1, 'name' => 'name1')),
(object)(array('id' => 2, 'name' => 'name2')),
);
foreach ($raw_arr as $value) {
$new_value = $value; //这里也是引用???
$new_value->name = $new_value->name . '-modify';
}
print_r($raw_arr);
输出:
Array
(
[0] => stdClass Object
(
[id] => 1
[name] => name1-modify
)
[1] => stdClass Object
(
[id] => 2
[name] => name2-modify
)
)
我的问题: 我想在 foreach 循环内将$value 传值给一个新变量$new_value ,我希望对$new_value 的任何操作都不会影响原始数组$raw_arr, 请问该怎么做呢?