TIP게시판

제목 삼항연산자 $a = $a ?: null; 을 아시나요?
글쓴이 배강민 작성시각 2016/11/22 16:15:41
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 14131   RSS
배강민

5.3부터인가 지원한 것으로 아는데,

많이들 모르시는듯해서 남겨봅니다.

가독성 측면으로 상당히 호불호가 갈리긴하고, 또 사용시 헤깔리기도 하는데, 나름 용이합니다.

 

삼항연산자 사용에서 간단히

조건절 ? true일때의 값 : false일때의 값;

이런걸 많이 쓰죠?

 

이럴때 조건절과 true일때의 값이 동일하면(?) 그를 생략할 수 있는 겁니다.

 

컨트롤러나 상위에서 $a에 어떤 값을 정의해두고,

뷰단이던 등등에서 그 값이 있으면 표출하고, 아니면 안보이거나 하이픈(-)으로 보이게들 많죠. 요럴때 꽤 용이합니다.

 

javascript의 var a = a || '-'; 와 동일하다고 볼 수 있겠습니다.

 

<?php echo $a ? $a : '-'; ?> 이런거 많이 쓰시던 분들은 조금은 타이핑이 줄 수 있습니다.

<?php echo $a ?: '-'; ?> 이렇게 쓸 수 있는 겁니다.

 

모르셨던 분들이 계시다면 쓰시던 안쓰시던 이런것도 되는구나 정도로만 아셔도 좋을듯요~

 다음글 CI 3.1.1 이후 버전에서 파일 업로드 문제 시 p... (3)
 이전글 CI3 IE Session 정상 작동 안될 때 Tip (2)

댓글

kaido / 2016/11/22 16:49:19 / 추천 0

<?php echo $a > 0 ? $a : '-'; ?> 

이런것도 가능 합니다.

꽈찌쭈 / 2016/11/22 16:52:09 / 추천 0

좋은 팁입니다

한가지 더 추가하고 싶은데

return 값이 boolean일 경우에는 삼항 자체가 필요가 없습니다.

 

$a = 3;
return $a == 3; // $a == 3 조건에 따라 true or false 리턴

참고 : http://modernpug.github.io/php-the-right-way/pages/The-Basics.html#ternary-operators

배강민 / 2016/11/22 16:57:03 / 추천 0

@꽈찌쭈

네, 저렇게도 가능하다는걸 모르시는 분들도 꽤 있는듯 하더라고요. 이도 호불호가 상당히 갈리는듯하시만요.ㅋ

재귀함수를 사용할때도 많이 쓰게되는 방식인듯~

kaido / 2016/11/22 17:00:02 / 추천 0

맞아요. 삼항연산이 참 편하고 논리적인데, 호불호가 많이 갈립니다.

심지어 필요조차 없는데 꼭 삼항연산으로 코드를 짜는 사람도 있어요.

마치 나는 이런것도 할 줄 알아! 라고 과시 하는 사람이라고 할까요?

 

서장훈씨의 단골 멘트를 빌려서 말 하자면...

"아이고~ 그게 뭔 의미가 있니!"