PHP 8 wprowadziło nową instrukcję kontrolną match, która działa podobnie do switch, ale jest bardziej elastyczna i bezpieczna. Instrukcja match pozwala na porównywanie wyrażenia z wieloma przypadkami, zwracając wartość zgodną z pierwszym pasującym przypadkiem. Jedną z głównych zalet match jest to, że porównuje ona wartości w sposób ścisły (===) oraz automatycznie zwraca wartość bez potrzeby stosowania break.
Podstawy instrukcji match
Instrukcja match porównuje wyrażenie z każdym przypadkiem (case) i wykonuje kod związanym z pierwszym pasującym przypadkiem. Jeśli nie znajdzie pasującego przypadku, może zostać zwrócony domyślny przypadek, oznaczony jako default.
Przykład użycia match
<?php
$dayOfWeek = 3;
$dayName = match ($dayOfWeek) {
    1 => 'Poniedziałek',
    2 => 'Wtorek',
    3 => 'Środa',
    4 => 'Czwartek',
    5 => 'Piątek',
    6 => 'Sobota',
    7 => 'Niedziela',
    default => 'Nieznany dzień',
};
echo "Dzień tygodnia: $dayName";
?>
W powyższym przykładzie, instrukcja match zwraca nazwę dnia tygodnia na podstawie numeru dnia. Dzięki zastosowaniu match, cała konstrukcja jest bardziej zwięzła i czytelna niż przy użyciu switch.
Zalety match nad switch
- Zwracanie wartości: matchautomatycznie zwraca wartość, eliminując potrzebę używaniareturnlub przypisywania wyniku do zmiennej w każdym przypadku.
- Porównanie ścisłe: matchużywa porównania ścisłego (===), co czyni ją bardziej przewidywalną niżswitch, który używa porównania luźnego (==).
- Bez break: Nie trzeba używaćbreakpo każdym przypadku, co zmniejsza ryzyko błędów.
Podsumowanie
Instrukcja match w PHP jest potężnym narzędziem, które ułatwia pisanie bardziej zwięzłego i bezpiecznego kodu. Dzięki jej elastyczności i prostocie użycia, match jest doskonałym uzupełnieniem instrukcji kontrolnych dostępnych w PHP, oferując programistom bardziej eleganckie rozwiązanie dla wielu typowych scenariuszy decyzyjnych.