묻고답하기

질문1)

몇 일 전에 아래의 소스를 제시하고, 1번 소스는 정상실행이 되는데,
2번소스는 왜 무한루프가 걸리는지를 질문했었어요.
그 때의 소스를 보여드리자면,...

<1번소스>
1행 <?
2행 $a=70;
3행 while($a<=80){
4행          if($a<=80){
5행                  echo $a."<br>";
6행                  $a++;
7행                        }
8행               else{
9행                      break;
10행                    }
11행               }
12행 ?>

<2번소스>
1행 <?
2행 while($a<=80){
3행 $a=70;
4행          if($a<=80){
5행                  echo $a."<br>";
6행                  $a++;
7행                        }
8행               else{
9행                      break;
10행                    }
11행               }
12행 ?>

물론 여러분들은 알고 계시겠지만, 제가 알아낸 사항은 바로...~

while, for, if 등과 같은 조건식내에 있는 변수는 일반적인 변수와 같은
"정적변수"의 특성을 가지고 있고,
while, for, if 구문의 중괄호{} 안에 있는 변수들은 function xxx(){}와
같이 함수의 중괄호{}내에 있는 변수와 같이 한 번 실행되면, 사라지는
특성을 지닌 변수이다.

라는 것을 알아냈는데, 이와 관련된 사항을 말씀드리자면...

1행 <?
2행 while($a<=80){
3행 $a=70;
4행          if($a<=80){
5행                  echo $a."<br>";
6행                  $a++;
7행                        }
8행               else{
9행                      break;
10행                    }
11행               }
12행 ?>

이 소스내용 중에 3행의 $a=70; 앞에 static을 붙이면, 무한루프가 안 걸리고,
정상적으로 값이 70~80까지 출력이 된다는 거죠^^

그리고, 위의 소스를 함수로 표현해봤는데요,...

1행 <?
2행 function sum(){
3행                        $a=70;
4행                        echo $a."<br>";
5행                        $a++;
6행                        }
7행 sum():
8행 sum():
9행 sum():
10행 sum():
11행 sum():
12행 sum():
13행 sum():
14행 sum():
15행 sum():
16행 sum():
17행 sum():
18행 ?>

이와 같이 코딩을 했다면, 70이라는 값이 11번 출력되었겠지만, 만약 3행의
$a=70; 앞에 static을 붙이게 되면 70~80까지 출력이 되더라구요~^^
그래서...

while, for, if 구문의 중괄호{} 안에 있는 변수들은 function xxx(){}와
같이 함수의 중괄호{}내에 있는 변수와 같이 한 번 실행되면, 사라지는
특성을 지닌 변수이다.

라는 결론이 나더라구요...맞나요??

질문2)
제가 보고 있는 책에는 static 선언자는 오직 함수내에서만 사용된다고
나왔는데, 위에서 제가 설명한 것 처럼 구문내에서도 사용하는 것이
정상적인 방법인가요??
글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
김영미 웹에서 asx 재생하고픈데..  
서유진 용량 관련 질문입니다~ [1] 2007.08.10
정호석 메뉴 이동 질문이요..^^ [1] 2007.08.10
라비 야웅님의 제로보드 FLASH 공지사항 만들기 강좌,  
용장 게시판에서 특정태그 사용가능하게하기.. [1] 2007.08.10
洪永薰 트래픽 제한에 질문있습니다. [1] 2007.08.10
zonewarez 음악........재생에대해서 질문요~ [1] 2007.08.10
김은혜 윈도위의 배경화면을 투명하게 할 수 있나요? win2000에서 말이죠. [1] 2007.08.10
마스카라♡ 폰토샵에서요 [2] 2007.08.10
CY-RO 포토샵 작업창 테두리질문입니다;; [1] 2007.08.10
시치미 php myadmin으로 해당 테이블만 db백업파일 저장어찌하죠? [1] 2007.08.10
서버공부중 테이블에 스크롤바를.. [4] 2007.08.10
윤여림 사이즈 질문인데염;; [1] 2007.08.10
kunbi 야구 게임에서.. [1] 2007.08.10
CiZ ...-_-;카운터 만들다가 생긴 또다른 에러;; [1] 2007.08.10
☆좀비파우더™ 인클루드로 노프레임 사이트 만들 때 에러 나요 ㅡㅡ 이거 정말 대갈통 아푸다;... [3] 2007.08.10
jpilkyo! 컴퓨터 용량이 가득차려고 해요, [4] 2007.08.10
조아라 input 박스? 배경 투명하게 하는 방법이 있나요? [1] 2007.08.10
김민성 [질문]노프레임홈인데 메뉴가 움직여요. [1] 2007.08.10
우창원 플래시와 제로보드 관련~  
CiZ 카운터를 만드는데.. [1] 2007.08.10
허재원 링크 그림으로 걸고 마우스를 올려놓으면 그림바뀌게 할수없나요? [1] 2007.08.10
최경옥 폼박스안에다 이미지를 넣을 수 있나요?  
김이정 phpMyAdmin오류내용좀 살표봐주세욤  
아이노 홈페이지 주소 좀 여쭈어 보겠습니다. [1] 2007.08.10
lacovnk <div>와 <span>을 중간에 넣었는데 칸이 떠버린다는 ㅡㅡ;  
lacovnk 링크해서 새창띄울때, 서버의 랙때문에 변수를 못받기도 하나요?  
김재수 플래쉬배너에 링크를 걸어서 홈으로 가게 해놧는데 자꾸 엉뚱한데로 갑니다~ [1] 2007.08.10
허진규 플래쉬.. 액션스크맂트 질문요 ㅜ_ㅡ [2] 2007.08.10
알까 무료제공 홈피의 주소형식으로 바꾸고 싶어요 [3] 2007.08.10