需要一些关于如何在不使用全局变量的情况下影响函数外部变量的代码示例。另外我想知道我应该在哪里使用 global 而不是。
提前致谢。
在不使用全局变量的情况下影响另一个范围内的变量的唯一方法是使用引用。您可以定义一个函数,通过在参数前面加上&
. 例如:
function increment(&$var) {
$var++;
}
$int = 1;
increment($int);
echo $int; // 2
在回答“我什么时候应该使用全局变量”这个问题时——从不。它们使程序流程混乱并引发错误和意外行为,并且它们还使代码的可移植性降低,因为它依赖于另一个范围内的变量名。
不要使用全局变量它的邪恶。
对于问题的第二部分,您可以这样做:
function test(&$param) {
$param = 'new';
}
$test = 'old';
test($test);
echo $test; // returns 'new'
$var = 'value';
echo $var; //outputs "value"
a($var);
echo $var //outputs "new value; func a";
b('some other sutff', 'etc');
echo $var; //outputs "new value; func b";
function a(&$var2affect){
$var2affect = 'new value; func a';
return;
}
function b($some_var, $some_second_var){
global $var;
$var = 'new vaule; func b';
}
或者只是告诉我们您具体想做什么
对不起我的英语不好