有什么更好,为什么?
1) - 什么变体:全局变量vs通过引用传递
/* 1 example */
$val = 1;
function add1(){
global $val;
$val++;
}
add1();
var_dump($val);
/* 2 example */
$val = 1;
function add2(&$val){
$val++;
}
add2($val);
var_dump($val);
2) - 什么变体:*“返回”与传递参考
/* 3 example */
$val = 1;
function add3(&$val){
$val++;
}
add3($val);
var_dump($val);
/* 4 example */
$val = 1;
function add4($val){
$val++;
return $val;
}
$val = add4($val);
var_dump($val);
答案 0 :(得分:1)
这总取决于你打算做什么。
但通常示例2比1好得多。 函数不应该修改全局变量, 它被称为副作用,很难控制。 对代码读者来说,参考ich的调用更加明确。
第二部分也一样,例4更好, 因为你可以将add4()函数与任何变量一起使用。