PHP의 조건문 (if, switch, ? 연산자)

2019. 7. 25. 01:51 PHP/php

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 [개발이 하고 싶어요]