오늘: 17|어제: 13|전체: 233,841|회원: 118 (+0)|문서: 56,040 (+0)|댓글: 8,019 (+0)|첨부파일: 1,389 (+0)


PHP
2013.11.01 10:48

PHP 강좌 4편 - 제어문

조회 수 3197 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - 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 라고 출력될것이다.

List of Articles
글쓴이 분류 제목 조회 수
YJSoft Apache php 실행 확장자 변경 2663
YJSoft™ Etc 안드로이드 시패널 관리 앱 6 file 2350
YJSoft Etc 편집기 사용시 팁 1989
루아틱 PHP 인덱스가 비어있을때.. 즉 public_html 하위에 빌더 또는 보드 설치시.. 1 2080
YJSoft XpressEngine 외부 페이지 사용시 백지현상 3685
CharmingIrene PHP PHP 강좌 4편 - 제어문 3197
CharmingIrene PHP PHP 강좌 3편 - 연산자 2908
CharmingIrene PHP PHP 강좌 2편 - 변수(variable) 4991
CharmingIrene PHP PHP 강좌 1편 - 기초 file 2997
루아틱 PHP 간단한 페이징 7 3083
YJSoft PHP 함수() or die("")? 2 2986
루아틱 XpressEngine XE 인증메일을 Gmail로 보내는 법 2 4115
YJSoft Etc 스팸 차단 화이트리스트 등록법 2 file 3540
YJSoft Etc 하위 도메인에 티스토리/네이버 블로그 연결 file 3425
루아틱 Etc 알면 도움되는 무제한 트래픽의 불편한 진실! 8 3628
루아틱 Etc 안드로이드용 cPanel 접속/관리 앱 2 3608
루아틱 Etc 윈도우 사용자 dns 캐시 초기화 명령 1 6630
가온누리 Etc 후딱빌더(그누보드) cheditor5에서 사진 첨부 했을때 오류 수정 file 13451
Luatic™ Linux 갤럭시 S3 에 Ubuntu Linux 설치하기 (영문) 3 file 27813
루아틱 PHP SSL 보안서버인증 적용하기 - 웹호스팅 (XE) 17137
Board Pagination ‹ Prev 1 2 3 4 5 6 Next ›
/ 6

처음