入门 - 静态变量

  • 作者:KK

  • 发表日期:2016.8.25


函数退出时会自动销毁内部变量

正常情况下函数里声明的变量在函数运行结束后会被自动销毁:

function test(){
	$a = 1 + mt_rand(1, 999);
	echo $a;
	echo '<br/>';
}

test();

test();

以上test函数里声明了一个叫a的变量并且赋予了一个随机数,而当结束返回到外面时,其实函数里的变量会被自动销毁不复存在,第二次调用的时候这个变量$a又重新生成了


不会被销毁的静态变量

通过static关键字来声明的变量就是静态变量,可以让它不被销毁:

function test(){
	static $a = 0;
	static $count = 0;
	$a += 100;
	echo '第' . (++$count) . '次调用' . __FUNCTION__ . '函数,该函数的内部变量$a的值是:' . $a;
	echo '<br/>';
}

test();
test();
test();
test();

带static那一行是声明静态变量的,只有第一次调用此函数的时候才会声明,以后调用就不会再声明了,并且函数执行完毕后这些变量不会被销毁,依然被保留,下次再调用此函数,这些变量的值的累加是基于上次的值进行累加的