사이트 내 전체검색
PHP
제어 구조 (Control Structures)
로빈아빠
https://cmd.kr/php/207 URL이 복사되었습니다.

본문

모든 PHP 스크립트는 일련의 구문으로 이루어 진다. 하나의 구문은 대입문이 될 수도 있고, 함수 호출, 반복문, 조건문이 될 수도 있으며 심지어는 아무 내용이 없는 빈 문장일 수도 있다. 한 구문은 일반적으로 세미콜론(;)으로 끝난다. 또한 여러개의 구문을 중괄호({,})를 사용하여 하나의 그룹으로 만들어 사용할 수도 있다. 이 구문-그룹은 그 그룹의 모든 구문들이 하나의 구문인 것처럼 인식된다. 여기서는 여러 가지 구문형태에 대해 알아본다.


--------------------------------------------------------------------------------

if
PHP의 IF문은 C와 비슷하다.

  1
  2 if (expr)
  3    statement
  4     
 

expr을 평가하여 TRUE이면 statement를 실행한다. FALSE이면 무시한다.

다음 예제는 $a가 $b보다 크면 "a is bigger than b"를 출력한다.

  1
  2 if ($a > $b)
  3    print "a is bigger than b";
  4     
 

여러 문장을 실행시키려면 중괄호( { } )를 사용하여 복문으로 만들면된다. :

  1
  2 if ($a > $b) {
  3    print "a is bigger than b";
  4    $b = $a;
  5 }
  6     
 

 


--------------------------------------------------------------------------------

else
ELSE는 IF문의 평가식이 FALSE일 경우 실행하는 문장을 지정한다. :

  1
  2 if ($a > $b) {
  3    print "a is bigger than b";
  4 } else {
  5    print "a is NOT bigger than b";
  6 }
  7     
 

 


--------------------------------------------------------------------------------

elseif
ELSEIF는 ELSE와 IF를 합쳐놓은 것과 같다. :

  1
  2 if ($a > $b) {
  3    print "a is bigger than b";
  4 } elseif ($a == $b) {
  5    print "a is equal to b";
  6 } else {
  7    print "a is smaller than b";
  8 }
  9     
 

한 IF문에는 여러개의 ELSEIF문이 있을 수 있다. ELSEIF문은 순서대로 평가하여 TRUE인 곳을 실행한다. 즉, 어떤 ELSEIF문이 실행 되려면 IF문의 평가식과 그 앞의 모든 ELSEIF문의 평가식이 FALSE이어야 한다. 이것은 'else if'라고 두 개의 문장으로 써도 된다(문법적인 의미는 약간 다르지만).


--------------------------------------------------------------------------------

제어구조의 다른 표현 (Alternative syntax for control structures)
PHP 3는 중괄호({ })를 쓰는 대신 IF(expr)뒤에 콜론( : )을 찍고, 하나 이상의 문장을 나열한 후에 ENDIF;로 끝내는 방법을 제공한다. 이 방법은 특히 IF문 안에 HTML 블럭을 삽입하는데 유용하게 사용될 수 있다. 다음 예를 보자. :

  1
  2  <?php if ($a == 5): ?>
  3  A is equal to 5
  4  <?php endif; ?>
  5     
 

위의 예에서 "A = 5"라는 HTML 블록이 IF문 안에 사용되고 있다. 위의 HTML 블록은 $a가 5일 경우에만 표시된다.

다음과 같이 ELSE와 ELSEIF (expr)도 사용할 수 있다. :

  1
  2 if ($a == 5):
  3    print "a equals 5";
  4    print "...";
  5 elseif ($a == 6):
  6    print "a equals 6";
  7    print "!!!";
  8 else:
  9    print "a is neither 5 nor 6";
 10 endif;
 11     
 

 


--------------------------------------------------------------------------------

while
WHILE 루프는 PHP 3의 가장 간단한 형태이다. 이것은 C와 동일하게 작동한다. 기본 형태는 다음과 같다. :

  1
  2 while (expr) statement
  3     
 

IF문과 마찬가지로 다음과 같은 문장 형태로 중괄호( { } )를 사용하지 않는 방법도 있다. :.

  1
  2 while (expr): statement ... endwhile;
  3     
 

다음두개의 예제는 동일한 예제이다. 1부터 10까지 출력한다.:

  1
  2 /* example 1 */
  3
  4 $i = 1;
  5 while ($i <= 10) {
  6    print $i++;  /* the printed value would be
  7                    $i before the increment
  8                    (post-increment) */
  9 }
 10 
 11 /* example 2 */
 12 
 13 $i = 1;
 14 while ($i <= 10):
 15    print $i;
 16    $i++;
 17 endwhile;
 18     
 

 


--------------------------------------------------------------------------------

do..while
DO..WHILE 루프는 비교식이 앞이 아닌 맨 뒤에 있다는 점을 제외하면 WHILE 루프와 비슷하다. 따라서 WHILE 조건절은 DO 문장이 실행된 후에 평가되므로, DO 이후의 문장은 무조건 한번은 실행된다.

다음과 같은 DO..WHILE 루프에서도 한번은 출력이 된다. :

  1
  2 $i = 0;
  3 do {
  4    print $i;
  5 } while ($i>0);
  6     
 

 


--------------------------------------------------------------------------------

for
FOR는 PHP의 가장 복잡한 루프이다. 이것은 C와 유사하다. FOR 루프의 형태는 다음과 같다. :

  1
  2 for (expr1; expr2; expr3) statement
  3     
 

첫 번째 표현식(expr1)은 루프를 시작할 때 무조건 한번 평가(실행)된다.

매 반복의 시작 때마다 expr2가 평가된다. 만약 이것이 TRUE면 루프는 계속되고 statement가 실행된다. expr2가 FALSE이면 루프는 종료된다.

매 반복이 끝날 때 expr3가 평가(실행)된다.

각 평가식은 비워둘 수 있다.expr2가 비어있으면 무한 루프를 뜻한다. (PHP는 C와 같이 비어있으면 TRUE로 인식한다.) 이건 별로 좋은 방법이 아니지만, 종종 BREAK를 사용하여 종료하는 방법도 있다.

다음 예는 1에서 10까지 출력하는 예이다. :

  1
  2 /* example 1 */
  3 
  4 for ($i = 1; $i <= 10; $i++) {
  5    print $i;
  6 }
  7 
  8 /* example 2 */
  9 
 10 for ($i = 1;;$i++) {
 11    if ($i > 10) {
 12        break;
 13    }
 14    print $i;
 15 }
 16 
 17 /* example 3 */
 18 
 19 $i = 1;
 20 for (;;) {
 21    if ($i > 10) {
 22        break;
 23    }
 24    print $i;
 25    $i++;
 26 }
 27 
 28 /* example 4 */
 29 
 30 for ($i = 1; $i <= 10; print $i, $i++) ;
 31     
 

물론 처음것이 가장 좋아보인다. 그러나 나머지도 가능하다는 것을 알아야 한다.

PHP는 FOR 루프에 대해서도 다음과 같은 "colon syntax"를 지원한다.

  1
  2 for (expr1; expr2; expr3): statement; ...; endfor;
  3     
 

일부 다른 언어들은 배열을 탐색하기 위하여 foreach 문장을 제공하기도 한다. 그러나 PHP는 이를 위해 list()와 each() 함수를 사용하여 while 루프로 해결한다. 이 함수들에 대해서는 예제를 참조하자.

출처 : http://qdata.co.kr/bo/bbs/board.php?bo_table=pht&wr_id=43

댓글목록

등록된 댓글이 없습니다.

PHP
871 (15/18P)

Search

Copyright © Cmd 명령어 3.129.67.248