728x90

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 를 눌러보면 된다.

728x90

'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
블로그 이미지

Link2Me

,