我在第三方代码中看到了一个声明为static的变量,但在任何类之外,只是在"普通"函数中.
<?php
function doStuff(){
static $something = null;
}
?>
Run Code Online (Sandbox Code Playgroud)
我从未见过static用这种方式,我在PHP文档中找不到任何东西.
这是合法的PHP代码吗?这实际上与全局变量相同吗?如果没有,目的是什么?
从手册:
变量范围的另一个重要特征是静态变量.静态变量仅存在于本地函数作用域中,但在程序执行离开此作用域时它不会丢失其值.
Run Code Online (Sandbox Code Playgroud)<?php function test() { static $a = 0; echo $a; $a++; } ?>现在,$ a仅在第一次调用函数时被初始化,并且每次调用test()函数时,它将打印$ a的值并递增它.