使用全局变量和通过引用传递param之间是否有任何实际区别?
简单示例:
$my_var = 5;
$my_var2 = 3;
function add_one(&$i){
return $i++;
}
function add_one_global(){
global $my_var2;
return $my_var2++;
}
add_one($my_var);
echo "$my_var<br>";
add_one_global();
echo "$my_var2";
输出结果为:
6
4
它们都修改了全局变量(意识到应该尽可能避免),“add_one”似乎更灵活一点,但除此之外还有其他区别吗? / p>
答案 0 :(得分:0)
不是,没有区别。你期待什么样的差异?唯一真正的区别是你自己注意到的那个 - 传递引用更灵活,不会污染全局命名空间。
如果这是一个小的一次性脚本,您需要运行一次然后丢弃,请选择最适合您的。
如果这是为了保持工作一段时间,请选择传递引用。当您需要对脚本进行一些修改时,这将会变得更加容易(这是时,而不是如果)。
答案 1 :(得分:-2)