页次: 1
静态变量的作用域比较特殊, 如果在函数内定义的变量。
随着函数的结果, 普通的内部变量也就消失了。 静态变量不同。
首先看一个示例
function f() { static $x = 0; if(isset($x)) { echo "yes"; } else { echo "no"; } } f();
执行的结果是 yes
如果是
function f() { static $x; if(isset($x)) { echo "yes"; } else { echo "no"; } } f();
执行的结果就是 no. 说明函数中没有 $x.
这就是静态变量和一般变量的区别。
静态变量离开函数的时候可以保存值。
function f() { static $x; echo ++$x; } for($i = 0; $i < 3; $i++) { f(); }
这个结果输出的是 123 说明两点
第一: 静态变量没有赋值的时候 ,是0。 其实这种说法不准确,如果是字符串就不一定。
第二: 静态变量的作用域不仅仅在函数内。
ipbbs.net
离线
页次: 1