php
PHP - 삼항 연산자
삼항 연산자는 “?” 와 “:”를 이용한 조건부 연산자로 if문과 비슷하게 동작합니다.
expr1이 참이면 expr2를 반환하고, 거짓이면 expr3을 반환하는 식입니다. 그리고 php5.3부터 “expr1 ?: expr3” 형식으로 expr2을 비울 수 있습니다.
(expr1) ? (expr2) : (expr3)
expr1이 참이면 expr2를 반환하고, 거짓이면 expr3을 반환하는 식입니다. 그리고 php5.3부터 “expr1 ?: expr3” 형식으로 expr2을 비울 수 있습니다.
<?php
$_POST['action'] = NULL;
// action 값이 NULL 이므로 참이 됩니다.
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];
// 출력: default
// 위 예제는 다음의 if/else 구문과 동일합니다
if (empty($_POST['action'])) {
$action = 'default';
} else {
$action = $_POST['action'];
}
?>
<?php
// 얼핏 보기에, 'true'를 출력할 것 같습니다
echo (true ? 'true' : false ? 't': 'f');
// 그러나 위의 실제 출력은 't'입니다
// 이는 삼항 표현이 왼쪽에서 오른쪽으로 비교하기 때문입니다
// 다음이 위 코드와 동일한 더 명확한 형식입니다
echo ((true ? 'true' : 'false') ? 't' : 'f');
// 여기서, 첫 표현이 'true'로 평가되고, 이것이
// (bool) true로 평가된 후, 두 번째 삼항 표현의 true쪽을 반환합니다.
?>
<?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
?>
<?php
$var = '<option .="" :="" selected="selected" status="=" value="1">Value 1</option>';
$var = '<option .="" :="" selected="selected" status="=" value="1">Value 1</option>';
?>
0 댓글