static(静的)変数

1 2
<?php
	function test_func(){
		static $a = 0;
		$a ++;
		return $a;
	}

	$val = test_func();
	echo "<div>{$val}</div>";
	$val = test_func();
	echo "<div>{$val}</div>";
本来、関数内で定義された変数は、呼び出されるたびに、初期化され、再定義されるので何度呼び出しても同じ値になるのですが、
static 変数名=値

とすることで対象の変数は値を保持するようになり、再度呼び出されたときは、再定義されず関数の終了時点での値となります。