我有一个仅由1个函数使用的变量。现在,我将变量声明为全局变量,并在函数内部使用global
来访问变量。但是,我担心我可能会偶然覆盖其他地方的变量。有没有办法在不使用类的情况下只使用1个函数来访问变量?
以下是我想要的一个例子:
$i=0;
function increment(){
global $i;
$i++;
echo $i;
}
for($j=0;$j<10;$j++)
increment();
// outputs 12345689
答案 0 :(得分:3)
如果你想要一个局部变量,其值从一次调用到下一次调用,请声明static
:
function increment() {
static $i = 0;
$i++;
echo $i;
}
答案 1 :(得分:0)
你为什么不这样做:
function increment(){
static $i = 0;
$i++;
echo $i;
}
对静态变量执行的任何操作都在其地址完成。所以你甚至不会失去你的结果价值。