함수안에 있는 변수의 값을 유지시키고 싶을때 사용하는 방법
결론부터 말하면 static를 변수앞에 주면 됩니다.
함수안의 변수는 기본적으로 로컬변수 이기 때문에 함수를 다시 호출 하면 초기화 됩니다.
그런 경우 글로벌 변수를 사용하는데. static는 글로벌 변수는 아니면서 정적인 특성을 가지게 됩니다.
/**
* static 속성에 대한 테스트
*
* @return [type]
*
*/
function fnc_static_test( )
{
// static $num;
static $num = 0;
$num++;
echo $num . "<br>";
}
fnc_static_test();
fnc_static_test();
echo date('Y-m-d H:i:s') . ' $num: ' . $num . "<br>";
위 함수를 실행해보면 $num 값이 유지 됩니다.
그리고 외부에서 호출은 안됨을 알 수 있습니다.
함수 실행할때 0으로 초기화 시키는 부분이 들어가 있지만 단 한번만 초기화 되고 다음 호출할때는 영향을 주지 않고 이전 값을 유지 하고 있습니다.