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