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이 되는 것으로 이해하실 수 있습니다.