PHP 정적 변수 정보

WBOY
풀어 주다: 2016-09-19 09:16:34
원래의
1002명이 탐색했습니다.

PHP의 정적 변수는 메모리에 하나의 복사본만 저장하지 않나요? 오늘 다음 코드를 시도했는데 몇 가지 질문이 있습니다

<code>function test(){
    static $sum = 0;
    static $sum = 20;
    for ($i=0; $i < 100; $i++) { 
        $sum = $sum + $i; 
    }
    echo  $sum;
}
echo "<pre class="brush:php;toolbar:false">";
    test();//4970
echo "<br />";
    test();//9920
echo "<br />";
    test();//14870
    
    </code>
로그인 후 복사
로그인 후 복사

메모리에 복사본이 하나뿐이므로 다시 호출하는 것은 직접 참조와 같으며 처음에 $num을 20에 할당한 이유는 무엇입니까?
첫 번째 실행 결과는 4950이 되어야 하지 않나요?

답글 내용:

PHP의 정적 변수는 메모리에 하나의 복사본만 저장하지 않나요? 오늘 다음 코드를 시도했는데 몇 가지 질문이 있습니다

<code>function test(){
    static $sum = 0;
    static $sum = 20;
    for ($i=0; $i < 100; $i++) { 
        $sum = $sum + $i; 
    }
    echo  $sum;
}
echo "<pre class="brush:php;toolbar:false">";
    test();//4970
echo "<br />";
    test();//9920
echo "<br />";
    test();//14870
    
    </code>
로그인 후 복사
로그인 후 복사

메모리에 복사본이 하나만 있기 때문에 다시 호출하는 것은 직접 참조와 같으며 $num에 처음으로 값 20이 할당된 이유는 무엇입니까?
첫 번째 실행 결과는 4950이 되어야 하지 않나요?

$i =1;$i<101

//결과: 4950;

위의 값이 0인 줄을 값이 20인 줄이 덮어쓴다는 것은 변수명이 동일하기 때문에 초기화하면 20이 되는 것으로 이해하실 수 있습니다.

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