웹마스터 팁

PHP 의 제어구조

프로그래밍언어에서, 가장 중요한 뼈대가 되는 부분이 제어구조입니다.. 우리가 C와 같은 언어를 배우며 흔히 말하는 이프(if) 엘스(else)와 같은 것을 바로, 제어구조라고 하며 PHP에서의 제어구조또한 C와 PERL의 제어구조가 상당히 유사하며, 특히 C를 많이 따르고 있습니다.


첫째로 조건문은 프로그램이 제시하는 연산조건이 참이면 참에 해당하는 내용을 실행하고 거짓이면 거짓에 해당하는 내용을 실행하는 구문입니다.

단순 조건문(IF/ELES문)

if (조건식) {} if (조건식) {}
else {}

다음은 단순 조건문의 사용예제입니다.

$start = 2 ;
if ($start == 0) {$stop = 3 ;}
else {$stop =1 ;}

echo "stop = $stop 입니다.";
?>
-----------------------------------------------------------

[실행결과] stop = 1 입니다.

[부연설명]
둘째줄, $start가 0 이면 $stop을 3으로 대입한다.
세째줄, 그렇지 않으면 $stop을 1로 대입한다.
위의 조건문에서 세째줄 else {$stop =1 ;}부분이 없다면 $start 가 "0"이 아니면 $stop 값은 정의되지 않는다. 즉, 거짓 "0" 으로 대입된다.



다중 조건문(IF/ELSEIF/ELSE구문)

두가지 이상의 조건을 검색하는 조건문입니다.

if (조건식1) {}
elseif (조건식2) {}
else {}

다음은 예제입니다.

if ($hancoma == "kim") {$me = "kim";}
elseif {$hancoma == "lee") {$me = "lee";}
else {$me = "park";}
?>
---------------------------------------------------------------

=> 부연설명 :
첫째줄, $hancoma 가 kim이면 $me를 kim으로 정의한다.
둘째줄, $hancoma 가 lee이면 $me를 lee으로 정의한다.
세째줄, $hancoma 가 kim 도 lee도 아니면 $me 는 park로 정의한다.
둘째줄과 같은 elseif(조건식) {} 줄은 여러개 존재할 수도 있습니다.
[주의] perl 에서는 2차조건시 elsif 였으나, php에서는 2차조건시 elesif 입니다.


WHILE 반복문

while (조건식) {
// 실행문
}

다음은 예제입니다.

$i = 1;
while($i < 6) {
echo "$i
";
$i++;
}
?>

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

[실행결과]
1
2
3
4
5

[부연설명]
최초 $i에는 1이 대입되어 있는 상태로 6보다 작으므로 참이 됩니다. 그러므로, 1을 출력하게 됩니다. 1을 가진 $i가 $i++을 통해 2로 되고 다시 반복함에 따라 자연히 1씩 증가되는 수를 출력하게 되고, 그 값이 6이 될때, 조건식이 맞게 않게 되므로, while문을 벗어나와 출력을 멈추게 됩니다.

DO...WHILE 반복문

do {
// 실행문
} while (조건식)

다음은 예제입니다.

$i = 1;
do {
echo "$i
";
$i--;
} while ($i > 0)
?>

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

[실행결과]
1

[부연설명]
do...while반복문은 while반복문과 같으나, 다만 처음에 do안의 실행문을 무조건 실행한다음 그 다음부터 whlile문의 조건에 따라 실행되어 지게 됩니다. 그러므로, 최초 $i 에 1이 들어있든 0이 들어있든 do문을 실행하게 되므로, 1을 출력하게 됩니다.. 이후 $i--에 의해 0이 된 $i는 while의 조건에 맞지 않으므로 더이상 출력을 하지 않게 됩니다.

 

FOR 반복문

for (시작;종료조건;증감식) {
// 실행문
}

다음은 1부터 6까지의 숫자를 계속해서 기록하는 예제입니다.

for ($i=1;$i<6;$i++) {
echo "$i
";
}
?>
----------------------------------------------

[실행결과]
1
2
3
4
5

[부연 설명]
둘째줄, $i = 1 에서 1씩 증가하여 $i가 11보다 작을 때까지 반복하는 구문입니다. 여기에서 $i++ 은 이전$i 값에 +1 식 증가시키라는 뜻입니다.
셋째줄, 증가된 $i를 프린트 하게 됩니다.


BREAK 구문

break는 for문이나, while문과 같은 반복문에서, 반복루프 밖으로 빠져나가는 역할을 하는 구문입니다.

$i = 1;
while ($i < 6) {
if($i == 3) {
echo "변수 $i 의 값에서 break되었습니다.
";
break;
}
$i++;
}
?>

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

[실행결과]
변수 3의 값에서 break되었습니다.

[부연설명]
최초 1의 값이 대입된 변수i가 whlie문안에서, $i++에 따라, 5까지 증가되어 지나, 중간의 if문에서 3과 같을때 들어있는 break구문을 만나면서, while루프밖으로 빠져나오게 됩니다.

CONTINUE 구문

continue구문은 반복문 내에서 제어를 다음차례로 넘기는 역할을 하는 구문입니다.

$i = 0;
while ($i < 6) {
$i++;
if($i % 2) {
continue;
}
echo "변수 $i 의 값에서 continue되었습니다.
";
}
?>

[실행결과]
변수 2 의 값에서 continue되었습니다.
변수 4 의 값에서 continue되었습니다.
변수 6 의 값에서 continue되었습니다.

[부연설명]
최초 $i에는 0이 대입되어집니다. while문에 들어간 $i는 $i++에 따라 1이 되고, $i % 2는 짝수에만 만족하라는 것으로, 2의 배수 즉, 짝수에만 continue다음의 구문을 실행하게 됩니다.. 그러므로, $i가 5일때까지 while문을 실행하게 되고, 5값을 가지고 들어간 $i는 $++을 통해 6이되며 마지막으로 continue구문을 통과하게 됩니다.

SWITCH 구문

switch구문의 사용은 C와 같습니다.

switch (표현식) {
case (값1) :
// 실행문
break;
case (값2) :
// 실행문
break;
default :
// 실행문
}



예제는 다음과 같습니다.

$a = 1;
switch ($a) {
case (1) :
echo "변수a는 1이다.";
break;

case (2) :
echo "변수a는 2이다.";
break;

case (3) :
echo "변수a는 3이다.";
break;

default :
echo "변수a의 값 을 알수 없다.";
}
?>

[실행결과]
변수a는 1이다.

[부연설명]

최초 변수 a에 1이 대입되어, switch 문을 통과?하게 됩니다.. 이때, case에서, $a와 같은 값이 있을때, 실행을 하고, 없다면, 다음으로 넘어갑니다.. 마지막 case값까지 $a와 일치하는 값이 없을 경우 default를 실행하게 됩니다.