PHP 정적 정적 변수

巴扎黑
풀어 주다: 2016-11-09 14:18:26
원래의
1267명이 탐색했습니다.

정적 변수는 함수 범위 내에서만 존재합니다. 즉, 정적 변수는 스택에만 존재합니다. 일반적으로 함수 내의 변수(예: 지역 변수)는 함수가 끝난 후 해제되지만 정적 변수는 해제되지 않습니다. 즉, 다음에 이 함수가 호출될 때 변수의 값이 유지됩니다.

변수 앞에 static 키워드를 추가하면 해당 변수는 정적 변수가 됩니다.

    <?php    
        function test()    
       {    
            static $nm = 1;    
            $nm = $nm * 2;    
            print $nm."<br />";    
        }    
    
        // 第一次执行,$nm = 2    
        test();    
        // 第一次执行,$nm = 4    
        test();    
        // 第一次执行,$nm = 8    
        test();    
    ?>
로그인 후 복사

프로그램 실행 결과:

2

4

8

test() 함수가 실행된 후, 변수 $nm 값이 저장됩니다.

정적 속성은 정적 멤버, 정적 메서드 등 클래스에서 자주 사용됩니다.

프로그램 목록: 클래스의 정적 멤버

정적 변수 $nm는 클래스의 인스턴스가 아니라 nowamagic 클래스에 속합니다. 이 변수는 모든 인스턴스에 유효합니다.

::은 범위 제한 연산자입니다. 여기서는 $this 범위 대신 self 범위가 사용됩니다. $this 범위는 클래스의 현재 인스턴스만 나타내고 self::는 클래스 자체를 나타냅니다.

소스 보기

인쇄하시겠습니까?

 <?php    
        class nowamagic    
        {    
            public static $nm = 1;    
    
            function nmMethod()    
            {    
                self::$nm += 2;    
                echo self::$nm . &#39;<br />&#39;;    
            }    
        }    
   
        $nmInstance1 = new nowamagic();    
        $nmInstance1 -> nmMethod();    
    
        $nmInstance2 = new nowamagic();    
        $nmInstance2 -> nmMethod();    
    ?>
로그인 후 복사

프로그램 실행 결과:

3

5


관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿