PHP의 조건문 (if, switch, ? 연산자)
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문, ? 연산자 중 필요 및 가독성에 따라 적절하게 사용하면 된다.
다음 포스트는 이어서 반복문을 정리하겠다.
출처: https://hyeonstorage.tistory.com/103?category=549768 [개발이 하고 싶어요]
'PHP > php' 카테고리의 다른 글
PHP의 객체 (2/2) (메소드, 속성, 상수, 메소드 범위, 상속) (0) | 2019.07.25 |
---|---|
PHP의 객체 (1/2) (클래스 정의, 객체 생성, 접근, 생성자, 소멸자) (0) | 2019.07.25 |
PHP의 함수 (정의, 반환, 참조, 포함과 요구) (0) | 2019.07.25 |
PHP의 반복문 (for, while, do while, break, continue) (0) | 2019.07.25 |
PHP 시작 (2/2) - 알아두면 좋은 몇가지 (0) | 2019.07.25 |
PHP 시작 (1/2) - 이것만은 알고 시작하자. (0) | 2019.07.25 |
[PHP] WAMP 설치하기 (3/4) - Zend Server CE mySQL 계정 생성 (0) | 2019.07.25 |
[PHP] WAMP 설치하기 (2/4) - Zend Server CE 에러 수정 및 관리자 페이지 접속 (0) | 2019.07.25 |