PHP 사용자 정의 함수의 정적 변수

함수가 몇 번 호출되었는지 알고 싶으면 어떻게 하나요? 정적 변수를 학습하지 않으면 문제를 해결할 수 있는 좋은 방법이 없습니다.

정적 변수의 특징은 정적 변수를 선언하는 것입니다. 함수가 두 번째 호출되면 정적 변수는 변수를 다시 초기화하지 않고 읽어서 실행합니다. 원래 값을 기준으로 합니다.

이 기능을 사용하면 초기 질문인
함수 호출 단어 수에 대한 통계를 실현할 수 있습니다.

먼저 데모() 함수를 10회 실행한 다음 test() 함수를 10회 실행해 보세요.

<?php
function demo()
{
   $a = 0;
   echo $a;
   $a++;
}



function test()
{
   static $a = 0;
   echo $a;
   $a++;
}


demo();
demo();
demo();
demo();
demo();
demo();
demo();
demo();
demo();
demo();

/*
for($i = 0 ;$i < 10 ; $i++){
   test();
}
*/
?>

위 예에서 다음을 찾을 수 있습니다.
test( ); 실행 값은 한 번 1씩 증가하며, 데모 출력의 표시 결과는 항상 0입니다.

위의 예를 통해 이 글의 시작 부분에서 설명한 정적 변수의 특성을 확인할 수 있습니다.


지속적인 학습
||
<?php //--------------如何理解static静态变量----------- /** 普通局部变量 */ function local() { $loc = 0; //这样,如果直接不给初值0是错误的。 ++$loc; echo $loc . '<br>'; } local(); //1 local(); //1 local(); //1 echo '===================================<br/>'; /** static静态局部变量 */ function static_local() { static $local = 0 ; //此处可以不赋0值 $local++; echo $local . '<br>'; } static_local(); //1 static_local(); //2 static_local(); //3 //echo $local; 注意虽然静态变量,但是它仍然是局部的,在外不能直接访问的。 echo '=======================================<br>'; /** static静态全局变量(实际上:全局变量本身就是静态存储方式,所有的全局变量都是静态变量) */ function static_global() { global $glo; //此处,可以不赋值0,当然赋值0,后每次调用时其值都为0,每次调用函数得到的值都会是1,但是不能想当然的写上"static"加以修饰,那样是错误的. $glo++; echo $glo . '<br>'; } static_global(); //1 static_global(); //2 static_global(); //3 ?>
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~