php中的静态变量和全局变量有什么区别?

时间:2012-07-28 09:41:26

标签: php variables static global

  

可能重复:
  what is the difference between “GLOBAL” and “STATIC” variable in php

如果我们在函数内部创建一个静态变量,这个变量存在于函数的进一步使用中......据我所知,全局变量也是如此。 现在使用静态变量有什么好处?

2 个答案:

答案 0 :(得分:10)

static静态变量的词法范围仅限于函数体 - 您无法访问函数外部的变量。 但是,它的值将在同一函数的多次调用中被记住。

全局变量存在于全局范围内,可以从代码中的任何位置访问(您必须在函数内部使用global关键字或$GLOBALS数组)

答案 1 :(得分:3)

静态变量只是意味着var属于一个类,但可以在不必实例化所述类的情况下引用它。全局变量存在于全局命名空间中,可以由任何类中的任何函数引用。全局变量总是令人不悦,因为它们很容易被误用,被覆盖,被意外引用等。至少对于静态变量,你需要通过Class :: var引用