Глоссарий

Match expression (PHP 8)

Match expression — PHP 8.0 альтернатива switch со строгим сравнением (===), без fall-through и с обязательным покрытием всех случаев. Возвращает значение, а не выполняет инструкции.

Switch vs Match

// switch — нестрого, fall-through, не возвращает
switch ($status) {
  case 'active': $label = 'Active'; break;
  case 'banned': $label = 'Banned'; break;
  default: $label = 'Unknown';
}

// match — строго, без fall-through, возвращает
$label = match($status) {
  'active'               => 'Active',
  'banned'               => 'Banned',
  'pending', 'unverified' => 'Waiting', // несколько условий
  default                => 'Unknown',
};

Преимущества