match 구조

match 구조는 PHP 8.0에서 도입되었으며, switch에 비해 더 간결하고 안전한 분기 방식을 제공합니다. 이 구조는 비교할 표현식을 받아 첫 번째로 일치하는 조건의 값을 반환합니다. switch와 달리, match는 엄격한 비교(===)를 수행하며 break가 필요하지 않습니다.

문법

php$result = match ($value) {
  condition1 => result1,
  condition2 => result2,
  ...
  default => default_result
};

예시

간단한 숫자 매칭:

php<?php
  $res = match (2) {
    1 => 'One',
    2 => 'Two',
    3 => 'Three',
    default => 'Unknown'
  };
  echo $res;
?>

코드 실행 결과:

php'Two'

예시

여러 조건과의 매칭:

php<?php
  $age = 25;
  $res = match (true) {
    $age < 18 => 'Child',
    $age >= 18 && $age < 65 => 'Adult',
    $age >= 65 => 'Senior'
  };
  echo $res;
?>

코드 실행 결과:

php'Adult'

예시

배열과 함께 사용하기:

php<?php
  $arr = [1, 2, 3];
  $res = match ($arr) {
    [1, 2, 3] => 'First sequence',
    [4, 5, 6] => 'Second sequence',
    default => 'Other sequence'
  };
  echo $res;
?>

코드 실행 결과:

php'First sequence'

함께 보기

  • switch 연산자,
    이는 분기를 위한 대체 방법을 제공합니다
  • if 함수,
    이는 조건문을 실행합니다