在PHP中创建一个只能由一个函数访问的变量

时间:2014-02-03 04:54:51

标签: php

我有一个仅由1个函数使用的变量。现在,我将变量声明为全局变量,并在函数内部使用global来访问变量。但是,我担心我可能会偶然覆盖其他地方的变量。有没有办法在不使用类的情况下只使用1个函数来访问变量?

以下是我想要的一个例子:

$i=0;
function increment(){
  global $i;
  $i++;
  echo $i;
}

for($j=0;$j<10;$j++)
  increment();
// outputs 12345689

2 个答案:

答案 0 :(得分:3)

如果你想要一个局部变量,其值从一次调用到下一次调用,请声明static

function increment() {
    static $i = 0;
    $i++;
    echo $i;
}

答案 1 :(得分:0)

你为什么不这样做:

function increment(){
  static $i = 0;
  $i++;
  echo $i;
}

对静态变量执行的任何操作都在其地址完成。所以你甚至不会失去你的结果价值。