프로그램 하면서 if 문과 switch 문은 빼놓을 수 없을 만큼 많은 비중을 차지 하고 있다.
하지만 if 문과 else if 문의 확실 한 차이점을 초기 이해못하고 사용한다면 정말 위험한
프로그램을 할 수 있기때문에 처음 프로그램을 접한다면 반드시 숙지하고 가는게 좋다.
기본적으로 if else 문의 기본 사용은 1번 예제와 같다.
1번 예제 |
<?php
// get, userid 로 빈 값을 받을 경우
if($_GET['userid'] == 'tester'){
echo 'tester 님 반갑습니다.';
}
else{
echo '로그인 후 이용해 주세요.'; // 이부분이 출력
}
?>
두번째로 else if 문의 기본 사용은 2번 예제와 같다.
2번 예제 |
<?php
// get , userid 로 master 값을 받을 경우
if($_GET['userid'] == 'tester'){
echo 'tester 님 반갑습니다.';
}
else if($_GET['userid'] == 'master'){
echo '관리자 님 반갑습니다.'; // 이 부분이 출력
}
else{
echo '로그인 후 이용가능합니다.';
}
?>
위의 두가지 예제는 단순하게 짜여진 소스라 별문제가 없지만 만약 아래 3번 예제 같은 경우는 어떨까?
분명 결과값에는 문제가 없다. 하지만 프로그램 수행 빈도로 본다면 상당히 비효율적이다.
3번 예제 |
<?php
// get, userid 로 tester 값을 받을 경우
if($_GET['userid'] == 'tester'){
echo 'tester 님 반갑습니다.'; // 이부분이 출력
}
if($_GET['userid'] == 'tester2'){
echo 'tester2 님 반갑습니다.';
}
if($_GET['userid'] == 'tester3'){
echo 'tester3 님 반갑습니다.';
}
if($_GET['userid'] == 'tester4'){
echo 'tester4 님 반갑습니다.';
}
?>
위의 3번 예제 소스를 보면 원하는 값은 출력이 되겠지만 프로그램 수행빈도로 본다면 총 4번을 체크하게 되므로
빈도는 4로 볼 수 있다. (예를 든 빈도이기때문에 규격화된 값은 아님)
따라서 위의 소스를 개선 한다면 아래의 4번 예제처럼 보완할 수 있다.
4번 예제 |
<?php
// get, userid로 tester 값을 받을 경우
if($_GET['userid'] == 'tester'){
echo 'tester 님 반갑습니다.'; // 이부분이 출력
}
else if($_GET['userid'] == 'tester2'){
echo 'tester2 님 반갑습니다.';
}
else if($_GET['userid'] == 'tester3'){
echo 'tester3 님 반갑습니다.';
}
else if($_GET['userid'] == 'tester4'){
echo 'tester4 님 반갑습니다.';
}
?>
위의 소스의 수행빈도는 1로 볼 수 있다. 하지만 여기서 또 문제점이 발생하는게 tester4 값이 입력됬을 경우다.
이경우에는 3번 예제와 수행빈도가 같기 때문에 좀더 나은 소스로 변경이 필요하다.
이때 사용할 수 있는게 바로 switch case 문이며 해당 방식은 동일 변수간 특정 조건의 값에 따라
처리할 때 사용할 수 있다. 사용 방법은 아래와 같다.
5번 예제 |
<?php
// get, userid로 tester4 값을 받을 경우
switch ($_GET['userid']) {
case 'tester':
echo 'tester 님 반갑습니다.';
break;
case 'tester2':
echo 'tester2 님 반갑습니다.';
break;
case 'tester3':
echo 'tester3 님 반갑습니다.';
break;
case 'tester4':
echo 'tester4 님 반갑습니다.'; // 이 값이 출력
break;
default:
echo '로그인 후 이용 가능합니다.';
break;
}
?>
이처럼 개발하는데있어 상위 단계로 나아기기 위해선 상황에 맞는 조건문을 잘 사용할 수 있어야 한다.
이번에 보여준 예제는 간단한 예제이지만 사실상 이러한 조건문은 기본 개발의 80%이상을 차지 하기때문에 반드시
숙지하고 넘어가는게 좋다.