如何在不使用全局变量的情况下影响函数外部的变量

时间:2012-04-24 13:10:08

标签: php function variables global

需要一些代码示例来说明如何在不使用全局变量的情况下影响函数外部的变量。另外,我想知道我应该在哪里使用全局,哪些不使用。

提前致谢。

3 个答案:

答案 0 :(得分:3)

仅使用 方式来影响另一个范围中的变量而不使用全局变量是使用references。您可以通过在参数前加&来定义一个通过引用获取参数的函数。例如:

function increment(&$var) {
  $var++;
}

$int = 1;
increment($int);
echo $int; // 2

在回答“何时应该使用全局变量”这一问题时 - 永远不要。它们使程序流混乱并引发错误和意外行为,并且它们也使代码不那么可移植,因为它依赖于另一个范围中的变量名。

答案 1 :(得分:1)

不要将全局变量用于它的邪恶。

对于问题的第二部分,您可以这样做:

function test(&$param) {
    $param = 'new';
}

$test = 'old';
test($test);
echo $test; // returns 'new'

答案 2 :(得分:0)

$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';

}

或者只是告诉我们你想要做什么

  

抱歉我的英文