PHP:类外的静态变量


PHP: static variable outside of class

我在第三方代码中看到一个变量被声明为静态,但在任何类之外,只是在"正常"函数中。

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

我从未见过static以这种方式使用,在PHP文档中也找不到它。

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

来自手册:

变量作用域的另一个重要特性是静态变量。静态变量只存在于局部函数作用域中,但它确实存在当程序执行离开此范围时,不会丢失其值。

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

现在,$a只在函数的第一次调用中初始化,并且每次调用test()函数,它将打印$a的值递增。