match с true — замена громоздкому if-elseif
// ❌ Было
if ($score >= 90) {
$grade = 'A';
} elseif ($score >= 75) {
$grade = 'B';
} elseif ($score >= 60) {
$grade = 'C';
} else {
$grade = 'F';
}
// ✅ Стало
$grade = match(true) {
$score >= 90 => 'A',
$score >= 75 => 'B',
$score >= 60 => 'C',
default => 'F',
};
Читается сверху вниз, возвращает значение, не требует break.
💡 match использует строгое сравнение (===), а при отсутствии default бросает UnhandledMatchError. Всегда добавляй default если входные данные непредсказуемы.
🐸 Библиотека пхпшника