类声明中的静态与函数中的静态

时间:2013-05-06 09:42:55

标签: php class static

class A{

  static $var = true;

  function f(){

  }

}

VS

class A{

  function f(){
    static $var = true;

  }
}

似乎没有任何区别。使用一个优于另一个有什么好处吗?

请注意,$var仅用于f()功能。我知道如果需要在多个函数中使用变量

,则需要在类头中声明它

2 个答案:

答案 0 :(得分:3)

如果你只在f函数中使用静态变量,那么只有一个范围差异,这意味着没有区别,只要你不尝试在其他地方使用它。

在本地范围内使用时,每个函数调用之间保持静态变量值。请参阅this page的静态变量部分。

感谢insertusernamehere指出这一点。

答案 1 :(得分:1)

在后面的示例中,您只能在f函数中使用var。另一个可以在课程A::var内或A::var

之外的任何地方访问