개발 지식

개발 지식

PHP PHP 8의 match() 활용법과 실제 사례

페이지 정보

profile_image
영삼이
0건 184회 25-03-28 22:48

본문

✅ 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보다 오류 가능성이 적음


댓글목록

등록된 댓글이 없습니다.