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:
match
automatycznie zwraca wartość, eliminując potrzebę używaniareturn
lub przypisywania wyniku do zmiennej w każdym przypadku. - Porównanie ścisłe:
match
uż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ćbreak
po 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.