본문 바로가기

PHP/PHP Programming

[PHP] 삼항연산자

반응형

삼항 연산자


 삼항 연산자는 "?"와  ":"를 이용한 조건부 연산자로 if 문과 비슷한 동작을 합니다.


 (expr1) ? (expr2) : (expr3)


 expr1이 참이면 expr2를 반환하고, 거짓이면 expr3을 반환한다.



 ex01.php

<?php
    $_POST['action'] = NULL;

    // action 값이 NULL이므로 참이된다.
    $action = (empty($_POST['action'])) ? 'default' : $_POST['action'];
    echo $action;    // 출력 : default
   

    //위 예제는 다음의 if / else 구문과 동일하다.
    if(empty($_POST['action'])) {
       
        $action = 'default';
    }
   
    else {
   
        $action = $_POST['action'];
    }
?>



 ex02.php

<?php
    // 얼핏 보기에, 'true'를 출력할 것 같다.
    echo(true ? 'true' : false ? 't' : 'f');

    // 그러나 위의 실제 출력값은 't'이다.
    // 이는 삼항 표현이 왼쪽에서 오른쪽으로 비교하기 때문이다.

    // 다음은 위 코드와 동일한 더 명확한 형식이다.
    echo((true ? 'true' : 'false') ? 't' : 'f');

    // 여기서, 첫 표현이 'true'로 평가되고, 이것이
    // (bool) true로 평가된 후, 두 번째 삼항 표현의 treu 쪽을 반환한다.
?>



 ex03.php
<?php
    echo 0 ?: 1 ?: 2 ?: 3;    // 출력 : 1
    echo 1 ?: 0 ?: 3 ?: 2;    // 출력 : 1
    echo 2 ?: 1 ?: 0 ?: 3;    // 출력 : 2
    echo 3 ?: 2 ?: 1 ?: 0;    // 출력 : 3

    echo 0 ?: 1 ?: 2 ?: 3;    // 출력 : 1
    echo 0 ?: 0 ?: 2 ?: 3;    // 출력 : 2
    echo 0 ?: 0 ?: 0 ?: 3;    // 출력 : 3
?>



반응형