반응형
Web Development · PHP
PHP 삼항 연산자 —
?: 한 줄로 if-else
간단한 분기를 짧게 표현 — 변수 대입에 자주 씀
시작 오늘 분석할 코드
나이를 보고 "어른"인지 "아이"인지를 한 줄로 판단한다. if-else 4~5줄을 한 줄로 압축한 형태.
<?php $age = 19; $adult_age = 20; $adult_check = ($adult_age <= $age) ? "어른" : "아이"; print $adult_check . " 입니다."; ?>
실제 출력 미리보기
아이 입니다.
용어 핵심 키워드
조건 ? A : B조건 참이면 A, 거짓이면 B
"삼항"3개 피연산자 (조건/A/B)
표현식값을 반환 — 변수에 대입 가능
단축 ?: (PHP 5.3+)$a ?: $b — $a 참이면 $a, 아니면 $b
?? null 합병 (PHP 7+)$a ?? $b — $a null이면 $b
중첩 시 ()우선순위 명확히
1 삼항 연산자의 모양
// 형태: 조건 ? 참일 때 값 : 거짓일 때 값 $result = ($age >= 20) ? "어른" : "아이";
본 코드의 조건은 $adult_age <= $age 즉 20 <= 19로 거짓이다. 그래서 결과는 "아이".
2 if-else와 비교
if-else (4줄)
if ($age >= 20) { $result = "어른"; } else { $result = "아이"; }
삼항 (1줄)
$result = ($age >= 20) ? "어른" : "아이";
💡 삼항이 적합한 곳 — 변수에 두 값 중 하나를 대입하는 경우. 본 코드처럼
$result = ... ? A : B 형태가 전형적.3 단축 ?: (Elvis 연산자)
PHP 5.3부터 중간 부분을 생략할 수 있다. $a ?: $b는 "$a가 truthy면 $a, 아니면 $b"이다.
$name = $user_input ?: "손님"; // $user_input이 "" 또는 null이면 "손님" 사용
반응형
4 ?? null 합병 (PHP 7+)
?:가 모든 falsy 값(0, "", null)을 잡는다면 ??는 오직 null/미정의만 잡는다.
$user = $_GET['user'] ?? "guest"; // $_GET['user']가 없거나 null이면 "guest" // $_GET['user']가 "0"이면? → "0" 그대로 사용 (?:와 다름)
⚙ 실무 팁 — 사용자 입력 검증엔
??가 안전하다. 0이나 빈 문자열도 의미 있는 값일 수 있어서다.5 중첩 — 가능하지만 가독성 ↓
// 중첩 — 읽기 어려움 $grade = ($score >= 90) ? "A" : (($score >= 80) ? "B" : (($score >= 70) ? "C" : "F"));
⚠ 3개 이상 분기는 if-else 또는 switch — 삼항을 중첩하면 빠르게 읽기 어려워진다. 두 가지 분기일 때만 권장.
6 자주 하는 실수
- 괄호 누락 → 우선순위 헷갈림 → 항상
(조건)으로 감싸기 - ?:와 ?? 혼동 → falsy 모두 잡고 싶으면 ?:, null만 잡으면 ??
- 3개 이상 분기에 사용 → if-else로
- 괄호 안에 또 ? : → PHP 7.4+에서는 명시적 괄호 강제
핵심 한 줄 요약
조건 ? A : B참이면 A, 거짓이면 B
표현식변수 대입에 사용
$a ?: $btruthy면 $a, 아니면 $b
$a ?? $bnull만 잡음 (PHP 7+)
2개 분기까지3개 이상은 if-else
Tags
#PHP #삼항연산자 #ternary #null-coalescing #elvis #if-else #조건식 #백엔드 #CSS #HTML #웹개발 #티스토리
▼ 티스토리 태그 입력란 복사용
PHP, 삼항연산자, ternary, null-coalescing, elvis, if-else, 조건식, 백엔드, CSS, HTML, 웹개발, 티스토리
반응형
'php' 카테고리의 다른 글
| PHP 비트 AND 연산자 — & 완전 정리 (0) | 2026.06.26 |
|---|---|
| PHP 참/거짓 — true, false, == 완전 정리 (0) | 2026.06.26 |
| PHP 증감 연산자 — ++ -- 후위/전위 완전 정리 (0) | 2026.06.25 |
| PHP 복합 대입 연산자 — += 완전 정리 (0) | 2026.06.25 |
| PHP 문자열 연결 — . 도트, .= 완전 정리 (0) | 2026.06.25 |
왕진 블로그

댓글