Hen*_*ikz 29 php variables function global-variables
我试图弄清楚我如何使用一个在函数外部设置的变量.有没有办法做到这一点?我试图将变量设置为"全局"但它似乎没有按预期的那样运行.
我的代码的一个简单示例
$var = '1';
function() {
$var + 1;
return $var;
}
Run Code Online (Sandbox Code Playgroud)
我想要这个,返回值2.
Jes*_*hen 56
您需要在函数中使用global关键字. http://php.net/manual/en/language.variables.scope.php
编辑(尴尬我忽略了这一点,感谢评论者)
...并将结果存储在某处
$var = '1';
function() {
global $var;
$var += 1; //are you sure you want to both change the value of $var
return $var; //and return the value?
}
Run Code Online (Sandbox Code Playgroud)
Jac*_*cob 10
Globals会做到这一点,但通常很好远离.在较大的程序中,您无法确定是否存在行为,因为它们可以在整个程序中的任何位置进行更改.使用全局变量的测试代码变得非常困难.
另一种方法是使用一个类.
class Counter {
private $var = 1;
public function increment() {
$this->var++;
return $this->var;
}
}
$counter = new Counter();
$newvalue = $counter->increment();
Run Code Online (Sandbox Code Playgroud)
$var = 1;
function() {
global $var;
$var += 1;
return $var;
}
Run Code Online (Sandbox Code Playgroud)
要么
$var = 1;
function() {
$GLOBALS['var'] += 1;
return $GLOBALS['var'];
}
Run Code Online (Sandbox Code Playgroud)
$var = '1';
function addOne() use($var) {
return $var + 1;
}
Run Code Online (Sandbox Code Playgroud)