PHP의 조건문 (if, switch, ? 연산자)
이번 포스팅에서는 PHP의 조건문에 대해서 알아보자.
조건문은 프로그램의 흐름을 바꾼다. 어떤 문제에 대해서 질문할 수 있고, 여러 방법으로 답에 대응한다. 조건문은 웹 페이지가 보일 때마다 간단한 방법으로 결과를 바꿀 수 있어서 동적인 웹 페이지에서 가장 중요한 부분이다.
조건문은 if, switch, ? 연산자로 구분할 수 있다.
1. if (if, else, else if)
if 조건의 내용은 등가식과 비교문, 0이나 NULL 테스트를 포함해 유효한 어떤 PHP 표현식도 될 수 있다. 또한 함수(내장 함수나 직접 작성한 함수 모두 포함)로부터 반환된 값도 될 수 있다.
else문은 조건문에서 참이 아닐 때 메인 프로그램을 즉시 시작하지 않고, 대신 다른 것을 하고 싶을 수 있다.
if...else 문에서는 둘 중 하나는 반드시 실행돼야 한다.
else if 는 조건문의 순서에 따라서 다른 가능성을 고려해야 하는 경우 사용한다. else if 문은 if문과 else문 사이에 들어간다. else if 문은 원하는 만큼 사용할 수 있다.
<?php
$money = 1000;
$savings = 800;
$bank_balance = 300;
if( $bank_balance < 100 ){ // $bank_balance 가 1000이기에 비교문에 들어가지 않는다.
$money += 1000;
$bank_balance += $money;
}else if( $bank_balance >200){ // if 조건에 걸리지 않아 else if 문을 비교, 조건 TRUE
$savings += 100; // $savings 값에 100을 더한다.
$bank_balance -= 100; // $bank_balance 값에 100을 뺀다.
}else{ // 만약 if 와 else if 모두 조건에 걸리지 않는다면, else 실행한다.
$savings += 50;
$bank_balance -= 50;
}
echo "money : ". $money; // monye : 1000 출력
echo "savings : ".$savings; // savings : 900 출력
echo "bank_balance : ".$bank_balance; // bank_balance : 200 출력
?> |
2. switch
switch 문은 변수나 표현식의 결과가 여러 개일 때 각기 다른 함수를 호출할 수 있어서 유용하다. else if 를 많이 써야 할 경우 switch를 사용하면 간단해진다.
switch 문에서 조건의 대상 변수를 명시한다. 그 후에 case 문에서 일치 여부를 검사한다. 그중 하나가 일치하면 조건문이 실행된다.
조건이 실행된 후 switch 문을 빠져나가려면 break 명령을 사용한다. break 명령이 없으면 조건에 걸린 case 부터 break를 만날 때 까지의 함수를 모두 실행한다.
switch 문의 어떤 case도 일치하지 않을 때 default를 실행한다.
<?php
function checkPage($page){
switch($page){ // $page 변수로 switch문 시작
case "Home" : echo "You seleted Home"; // $page가 Home 이면 ; You selected Home 출력 break; // switch 문 탈출
case "About" : echo "You selected About"; // $page가 About 이면 ; You selected About 출력 break; // switch 문 탈출
case "News" : echo "You selected News"; // $page가 News 이면 ; // You selected NewsYou seleted Login 출력
case " Login" : echo "You selected Login"; // $page 가 Login 이면 ; You selected Login 출력 break; // switch 문 탈출
default : echo "Unrecognized selection"; // $page가 Home, About, News, Login외의 다른 값이면, // Unrecognized selection 출력 break; // switch 문 탈출
} }
checkPage("Home"); // You seleted Home 출력
checkPage("About"); // You selected About 출력
checkPage("News"); // You selected NewsYou selected Login 출력
checkPage("Login"); // You selected Login 출력
checkPage("Links"); // Unrecognized selection 출력
?> |
다른 방법으로 switch 문을 사용할 수 있다. switch 뒤에 중괄호를 사용하지 않고 : 를 명시 후 마지막에 endswitch;를 작성하여 닫아준다. 하지만 이 방식은 잘 사용하지 않는다. 참고만 하자.
<?php
switch($page) : // $page 값으로 switch 비교
case "Home" : echo "You selected Home"; // $page가 Home 이면 You selected Home 출력 break; // switch 문 탈출
case "Links" : echo "You selected Links"; // $page가 Links 이면 You selected Links 출력 break; // switch 문 탈출
endswitch; // switch 문 끝
?> |
3. ? 연산자
if와 else 문의 장황함을 피하는 방법 중 하나는 더욱 간결한 삼항 연산자인 ? 를 사용하는 것이다.
? 연산자는 하나의 표현식과 표현식이 참과 거짓일 때를 구분한 두 개의 실행 문장과 함께 전달된다.
비교문이 TRUE 일때는 : 앞의 함수가 FALSE 일때는 : 뒤의 함수가 실행된다.
<?php
$saved = 7;
$new = 8;
echo $saved == 7 ? "saved is 7" : "saved is not 7"; // 조건이 TRUE 이므로 saved is 7 출력
$saved = $saved >= $new ? $saved : $new; // $saved >= $new 가 FALSE 이므로 $saved에 $new가 대입된다.
echo $saved; // 6 출력
?> |
지금까지 PHP에서의 비교문의 3가지를 알아 보았다.
if 문, switch문, ? 연산자 중 필요 및 가독성에 따라 적절하게 사용하면 된다.
다음 포스트는 이어서 반복문을 정리하겠다.
PHP의 반복문 (for, while, do while, break, continue)
출처: https://hyeonstorage.tistory.com/103 [개발이 하고 싶어요]
'코딩 | 개념 정리 > PHP' 카테고리의 다른 글
[PHP] XAMPP MySQL 접속 에러 해결 (0) | 2022.06.19 |
---|---|
[PHP] 서버 시간 변경 (2) | 2022.06.12 |
[PHP] VS Code에서 HTML 자동 줄 정렬(PHP코드에서) (0) | 2022.06.05 |
[PHP] VS Code에서 Live server로 PHP reload 설정하기 (2) | 2022.06.01 |
Xampp에서 mysql port 변경시 설정 (0) | 2020.12.30 |