PHP

PHP 강좌 4편 - 제어문

by CharmingIrene posted Nov 01, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

+ - Up Down Comment Print
Extra Form
PHP의 제어문은 C/C++,JAVA,Javascript와 매우 유사하다.
아마 C언어를 하신분이라면 PHP 제어문은 금방 배울 수 있을 것이다.
다만 if문의 elseif가 좀 차이일뿐이다. (C/C++같은 언어에선 else if로 사용)

조건문

1. if문

if (condition){
}

<?php

$a=30;
$b=40;
if($a==$b){
}

?>
위의 결과에서 $a와 $b의 값은 출력되니 if문은 실행되지 않을것이다.

2. if~else문

if (condition){
}else{
}

if문의 조건이 false가 나오면 else안에 있는 코드가 무조건 실행된다.

<?php

$a=30;
$b=40;
if($a==$b){
??? echo("같다.");
}else{
??? echo("안같다.");
}

?>

여기서는 $a와 $b의 값이 같으니 "안같다."가 출력될것이다.

3. if~elseif~else문

if (condition){
}else if (condition){
}else{
}

참고로 C/C++,JAVA에선 else if로 사용하지만 PHP에선 elseif로 사용되는걸 주의해야한다.
elseif는 또 다른 조건을 걸 수 있고 elseif문의 갯수는 제한이 없다.

<?php

$a=30;
$b=40;
if($a==$b){
??? echo("같다.");
}else if($a<$b){
??? echo("a보다 b가 더 크다.");
}else if($a>$b){
??? echo("a보다 b가 더 작다.");
}else{
??? echo("안같다.");
}

?>

a보다 b값이 더 크니 "a보다 b가 더 크다."가 출력될것이다.

switch문

switch문도 if같은 일종의 조건문이다.

switch(n){
case label1:
??? break;
case label2:
??? break;
case default:
??? break;
}

n의 값이 label1과 같다면 label1문이 출력되고, n의 값이 label2와 같다면 label2문이 출력되고, 아무값에도 속하지 않으면
맨 마지막의 default문이 출력된다.
참고로 label 맨 마지막엔 break 예약어를 두어야한다.
break를 보면 곧바로 switch문을 빠져나갈것이다.
안그러면 밑의 label에 있는 코드도 출력될 것이다.

<?php

$a=3;

switch($a){
case 1:
??? echo("a의 값은 1");
??? break;
case 2:
??? echo("a의 값은 2");
??? break;
case 3:
??? echo("a의 값은 3");
??? break;
default:
??? echo("a의 값은 1,2,3에도 속하지 않는 값이다.");
??? break;
}

?>

여기선 $a의 값이 3이니 case 3: 안에 있는 코드가 실행될 것이고 break를 통해 빠져나올것이다.
즉 "a의 값은 3"이 출력된다.

while문

while문은 반복문의 일종이다.
두가지 방법이 있다.

while (condition){
}

do{
}while(condition);

차이점은 후자 (do-while)문은 조건에 상관없이 무조건 한번은 실행된다.
condition값이 false가 되면 while문을 빠져나오고, false가? 안되면 계속 무한루프가 될 수도 있으니 주의해야 한다.

<?php
$a=0;

while($a<10){
??? echo($a." ");
??? $a+=1;
}

?>

0 1 2 3 4 5 6 7 8 9? 이 출력될것이다.
$a가 10이 되면 while문을 빠져나오므로 출력이 되지 않는다.
참고로 while문안에 증감식이 없으면 무한루프에 빠질 수 있으니 주의해야한다.

<?php
$a=0;

do{
??? echo($a." ");
??? $a++;
}while($a<10);

?>

위와 결과가 같다.

for문

for문도 while같은 반복문의 일종이다.

for(초기값;condition;증감식){
}

while문을 쉽게 쓸 수 있는것이 불과하다.
역시 condition이 false가 되면 for문을 탈출할것이다.
for(;;)식으로 주면 무한루프가 된다.

<?php
$a=0;

for($a=0;$a<10;$a++){
??? echo($a." ");
}

?>

결과는 0 1 2 3 4 5 6 7 8 9 를 출력한다.

foreach문

foreach($array as $value){
}

배열의 갯수만큼 반복하여 출력한다.
$value에는 $array 배열하나 하나값이 대입될것이다.

<?php
$arr=array("hello","world","!","haha");

foreach($arr as $v){
??? echo($v." ");
}

?>

hello world ! haha 라고 출력될것이다.