什么更好,为什么?
1)-什么变体:全局变量与通过引用传递
/* 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)-什么变体:*"Return" vs通过引用传递
/* 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);
这总是取决于你打算做什么。
但通常例子2比例子1好得多。函数不应该修改全局变量,这是一种很难控制的副作用。带引用的调用对于代码读者来说更加清晰。
第二部分也一样,例4更好,因为您可以对任何变量使用add4()函数