PHP PHP 8의 match() 활용법과 실제 사례
페이지 정보

영삼이
본문
✅ PHP 8의 match()
활용법과 실제 사례
PHP 8부터 도입된 match()
표현식은 switch
문의 대체제로, 더 안전하고 간결한 분기 처리 방식을 제공합니다.
🔍 기본 문법
[code=php]
$result = match($value) {
1 => 'one',
2 => 'two',
3 => 'three',
default => 'unknown',
};
[/code]
-
match()
는 표현식이며 값을 반환함 -
switch
와 달리 **엄격한 비교(===
)**를 사용 -
fall-through 없음 (break 불필요)
✅ switch
vs match
비교
[code=php]
// switch
switch ($status) {
case 'active':
$label = '활성';
break;
case 'inactive':
$label = '비활성';
break;
default:
$label = '알 수 없음';
}
[/code]
[code=php]
// match
$label = match($status) {
'active' => '활성',
'inactive' => '비활성',
default => '알 수 없음',
};
[/code]
⚙️ 복잡한 예시 (함수 호출 포함)
[code=php]
function getDiscount(string $memberType): int {
return match($memberType) {
'vip' => 30,
'gold' => 20,
'silver' => 10,
default => 0,
};
}
[/code]
🚨 default 생략 불가한 상황
모든 케이스가 명시되지 않은 경우 default
를 꼭 넣어야 함.
[code=php]
$type = 'guest';
$role = match($type) {
'admin' => '관리자',
'user' => '일반회원',
// default => '게스트' // 생략하면 MatchError 발생
};
[/code]
🧠 요약
-
match()
는 엄격한 비교 + 표현식 기반 -
간결한 코드를 원할 때 매우 유용
-
복잡한 로직도 표현 가능하며 switch보다 오류 가능성이 적음
- 이전글PHP에서 클린 아키텍처 적용하기 25.03.28
- 다음글PHP에서 인터페이스와 트레이트 혼용 설계 팁 25.03.28
댓글목록
등록된 댓글이 없습니다.