我在第三方代码中看到一个声明为static的变量,但在任何类之外,只是在“普通”函数中。
<?php
function doStuff(){
static $something = null;
}
?>
我从未见过用这种方式static
,我在PHP文档中找不到任何内容。
这是合法的PHP代码吗?这实际上与全局变量相同吗?如果没有,目的是什么?
答案 0 :(得分:7)
变量范围的另一个重要特征是静态变量。 静态变量仅存在于本地函数范围内,但确实存在 当程序执行离开这个范围时,它不会失去它的价值。
<?php function test() { static $a = 0; echo $a; $a++; } ?>
现在,只有在第一次调用函数时才会初始化$ a 调用test()函数它将打印$ a和的值 增加它。