묻고답하기

<1번소스>
1행 <?
2행 function sum(){
3행              $a=10;
4행              static $a=20;
5행              $a++;  
6행              echo $a."<br>";  
7행              }
8행   sum();
9행   sum();
10행 sum();
11행 ?>

<1번소스 결과>
21
22
23

1번 소스의 경우에는 3행에 $a값이 할당된 후에 다시 4행에서 static선언자를 사용하여 $a에
20이라는 값을 재할당하였어요, static이라는 선언자는 처음에 한 번만 변수에 할당된 값을
사용하고, 그 이후 부터는 메모리에 저장되어 있는 변수 값을 사용하는 것이라는 답변을 받았거든요...
그래서 8행에서 sum()함수를 호출했을 때 $a의 값은 21이 나오는구나...
그리고 9행에서 sum()함수를 다시 호출했을 때 3행의 $a=10이라는 값을 재할당 받지 않고,
메모리에 저장되어 있는 21이라는 값을 사용하여 $a의 값이 22가 나오는 구나...
마찬가지로 10행에서 sum()함수를 또 다시 호출하였을 때도 마찬가지 경우로 23이 나오는
구나...이렇게 생각들더라구요...
그래서 static이 while구문에서 사용됐을 때도 마찬가지의 결론이 나올까? 하고 다음과 같이
코딩을 했어요..


<2번소스>
1행 <?
2행 $b=20;
3행 while($b<=23){
4행              $b=10;  
5행              static $b=20;  
6행              $b++;    
7행              echo $b."<br>";  
8행              }
9행 ?>

<2번소스 결과>
21
11
11
11
.
.
.
(11값만이 무한루프됨)

이번에는 1번소스와는 달리 이런결과가 나오네요..ㅡㅡ;;
1번 소스에서 처럼 4행에 $b에 10이 할당한 후에 다시 5행에서 static 선언자를 사용하여
$b 에 20이 재할당되었으므로 1번째 실행에서는 21이라는 값이 출력된 것이고...
그 다음에 static의 특성에 의해 4행에서 $b에 10이 할당되더라도 이 값을 사용하지 않고,
메모리에 저장되어 있는 21이라는 값을 사용하여 2번째 실행되었을 때 22이라는 값이 출
력되고 3번째 실행되었을 때는 23이라는 값이 출력되어야 하는 것이 아닌가요??

아~ 많은 분들께서 좋은 답변으로 도와주시는데도, 이렇게 이해를 못하는 제가 이제는
부끄럽습니다. ...ㅡㅡ;
그래도 답변 해주시면 더할나위 없이 감사하구요...(__);;
글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
최순병 기본적인 태그질문 ㅡㅡ;; [3] 2007.08.10
선우희 런타임 오류 [2] 2007.08.10
김상훈 로그인 때문에 질문합니다.  
Aya마츠리 FTP 에서 말입니다. [2] 2007.08.10
김진철 플래시와 html의 책갈피를... [2] 2007.08.10
배틀매냐 암호화 되있는거 어떻게 푸나요?ㅡㅡ;; [1] 2007.08.10
서창민 크롬리스에서 페이지 이동(뒤로가기, 앞으로가기) 먹통 문제 [1] 2007.08.10
yunjinho 제로보드 홈피같은 메뉴... [1] 2007.08.10
허진규 플래쉬 자바스크립트 연동하는 방법좀알려주세요 ^ ^  
Elfish 폰트가 뜨지 않아요 [2] 2007.08.10
김영미 asx 파일을 웹페이지에서 재생하려면? [3] 2007.08.10
김남웅 같은 폼 객체 내용 값을 변수로 쓰고 싶은데요..ㅜ.ㅡ [1] 2007.08.10
서버공부중 이런질문 해도 되는지...;; [1] 2007.08.10
깡s™ 이걸여따써도되나-_-a 죄송하지만 이거에 답변좀 ^^ [2] 2007.08.10
ㅡㅅㅡㅋ 포토샾에서.. 레이어가 안만들어집니다.. [2] 2007.08.10
소허 tr 에 마우스가 올라가면 background 이미지가 보이게 하고 싶습니다. [1] 2007.08.10
김경현 [질문] 특정 문자열과 문자열 사이의 내용을 읽어들여...  
[포터]아렌티 클릭하면 쪽지 보내기 -_- [1] 2007.08.10
왜날쀍zyose 링크중에. [1] 2007.08.10
쌔끈남 저겨 창을 작게 줄이면 만든 페이지가 깨지는데.. [1] 2007.08.10
김동은 제로카운터에서.. [1] 2007.08.10
DataPark 도스 프로그램 실행시킬때 창 안뜨게 할순 없나요? [5] 2007.08.10
김수정 이상하게 css가 적용이안됩니다..ㅠㅠ [1] 2007.08.10
서버공부중 이폰트의 이름과 다운 받는 곳은? [2] 2007.08.10
Clara Kim 날짜를 이용한 이미지를 콤보 박스로 이용해서 하루하루 출력하는 방법...??? [2] 2007.08.10
Clara Kim 질문있습니다!! 흠.... 스크롤에 따른 레이어 이동 질문! 스크롤을 움직여야 내용이 보이네여.. ㅜㅜ [1] 2007.08.10
정지성 배경음악에 대해 질문좀하겠습니다..^^; [2] 2007.08.10
Nova 12시간 단위로 나오는 걸 6 시간 단위로 바꾸고 싶습니다. [2] 2007.08.10
야후,네이버,엠파스 같은 검색사이트... [1] 2007.08.10
박경찬 nzeo 위의 메뉴 구현 방법.. [1] 2007.08.10