PHP:类外的静态变量

时间:2013-12-16 13:00:56

标签: php static

我在第三方代码中看到一个声明为static的变量,但在任何类之外,只是在“普通”函数中。

<?php
function doStuff(){
    static $something = null;
}
?>

我从未见过用这种方式static,我在PHP文档中找不到任何内容。

这是合法的PHP代码吗?这实际上与全局变量相同吗?如果没有,目的是什么?

1 个答案:

答案 0 :(得分:7)

From the manual

  

变量范围的另一个重要特征是静态变量。   静态变量仅存在于本地函数范围内,但确实存在   当程序执行离开这个范围时,它不会失去它的价值。

<?php
function test()
{
     static $a = 0;
     echo $a;
     $a++;
}
?>
     

现在,只有在第一次调用函数时才会初始化$ a   调用test()函数它将打印$ a和的值   增加它。