PHP 삼항연산자 ?
삼항 연산자 (? :): 비교 연산자와 함께 사용하여 어떤 판단을 하고자 할 때 사용한다. ?와 :을 사용해서 구문을 작성한다.
if 와 else 문의 장황함을 피하는 방법 중 하나는 더욱 간결한 삼항 연산자(conditional operator)인 ? 를 사용하는 것이다.
HTML 문과 혼재되어 있는 경우에는 대체문법을 사용하면 좋다. 참조 : http://link2me.tistory.com/981
예제를 통해 살펴보자.
$message = 'Hello '.($user->is_logged_in() ? $user->get('first_name') : 'Guest');
/* shorthand usage */
$message = 'Hello '.($user->get('first_name') ?: 'Guest');
/* "thankfully-you-don't-need-to-maintain-this" level */
$days = ($month == 2 ? ($year % 4 ? 28 : ($year % 100 ? 29 : ($year %400 ? 28 : 29))) : (($month - 1) % 7 % 2 ? 30 : 31)); //returns days in the given month
/* If condition is true then assign a to result otheriwse b */
/* 조건이 참이면 a를 할당하고, 거짓이면 b를 할당
$result = ($a < $b ) ? $a :$b;
function xx($a,$b)
{
$rs = ($a > $b) ? $a : $b ;
return $rs;
}
<?php
$j = 11;
while($j-- > -10) {
if($j == 0 ) continue; // 0 으로 나누는 것을 방지하기 위한 목적
echo "$j". (10/$j) . "<br />";
}
?>
PHP 5.3 이후부터는
$rs = $a ? $a : ' ' ;
대신에
$rs = $a ? : ' ' ;
와 같이 true 인 경우의 변수를 생략할 수 있다.
하지만 정확하게 하기 위해서 true 인 경우의 변수도 써주는 것이 좋다.
이 밖에 PHP 연산자에 대해 쉽게 찾아보려면 http://www.w3schools.com/php/php_operators.asp 를 눌러보면 된다.
'Web 프로그램 > PHP 문법' 카테고리의 다른 글
[PHP] 문자열 자르기 substr (0) | 2015.05.16 |
---|---|
음악 재생 1 (0) | 2015.03.28 |
[PHP기초] continue 문 (0) | 2015.03.05 |
[PHP문법] array (배열) (0) | 2015.03.04 |
[PHP기초] switch 문 (0) | 2015.03.03 |