查看文章 |
PHP参数传递-值传递陷阱
2009-06-26 10:20
接文章:PHP里使用引用变量时容易犯的错 中的示例 foreach($arr as &$element) { //modify $element } 当循环操作完后,你再次调用了某个复制或者函数来保存$arr数组,例如: set_var("arr", $arr); 这时候你认为被设置的$arr就是你想要的那个数组么?是的,确实就是那个数组。但是,它会变。 因为在上面那个循环后,数组的最后一个元素被处理成了一个引用型的变量,虽然set_var函数对数组采用的是值传递,但是数组中的某一个值却是一个引用值,所以无论怎样赋值,那个它总是会保持引用特性。所以如果再在某个地方使用$element变量,就可能让你栽一个跟头。 |
最近读者: