我们讨论的最后一种变量作用域称为静态(static )作用域。函数参数在函数退出时会撤
销,与声明为函数参数的变量不同,静态变量在函数退出时不会丢失值,并且再次调用
此函数时还能保留这个值。在变量名前面加上关键字 STATIC 就可以声明一个静态变量:
STATIC $somevar
考虑一个例子:
function keep_track() {
STATIC $count = 0;
$count++;
print $count;
print "<br>";
}
keep_track();
keep_track();
keep_track();
这个脚本的输出会是什么?如果变量$count 没有指明为静态(相应地,$count 就是一个局
部变量),输出结果会是如下所示:
1
1
1
但是,因为$count 是静态的,他会在每次执行函数时保留前面的值。所以输出如下:
1
2
3
静态作用域对于递归函数很有用。递归函数是一个功能强大的编程概念,他是一个可
以重复调用自身的函数,知道满足条件位置。