if, else, elseif
Instrukcje warunkowe if, else i elseif pozwalają na wykonywanie określonych bloków kodu w zależności od tego, czy dany warunek jest spełniony.
Składnia:
<?php
if (warunek) {
// kod, który zostanie wykonany, gdy warunek jest prawdziwy
} elseif (inny_warunek) {
// kod, który zostanie wykonany, gdy poprzedni warunek nie jest spełniony, ale ten tak
} else {
// kod, który zostanie wykonany, gdy żaden warunek nie jest spełniony
}
?>
Przykład:
<?php
$liczba = 10;
if ($liczba > 10) {
echo "Liczba jest większa niż 10.";
} elseif ($liczba == 10) {
echo "Liczba jest równa 10.";
} else {
echo "Liczba jest mniejsza niż 10.";
}
// Wyświetli: Liczba jest równa 10.
?>
switch
Instrukcja switch jest używana do porównywania jednej zmiennej z różnymi przypadkami. Jest to bardziej wygodne i czytelne w przypadku, gdy mamy do czynienia z wieloma warunkami.
Składnia:
<?php
switch ($zmienna) {
case wartość1:
// kod, który zostanie wykonany, jeśli zmienna ma wartość wartość1
break;
case wartość2:
// kod, który zostanie wykonany, jeśli zmienna ma wartość wartość2
break;
default:
// kod, który zostanie wykonany, jeśli żadna z wartości nie pasuje
}
?>
Przykład:
<?php
$kolor = "czerwony";
switch ($kolor) {
case "czerwony":
echo "Kolor miłości";
break;
case "zielony":
echo "Kolor natury";
break;
default:
echo "Nieznany kolor";
}
// Wyświetli: Kolor miłości
?>
Zalety switch w porównaniu do if:
- Wydajność:
switchmoże być bardziej wydajny, gdy mamy do czynienia z wieloma przypadkami. - Czytelność:
switchjest bardziej czytelny, szczególnie przy porównywaniu jednej zmiennej do wielu wartości.
Różnice między PHP 7 i PHP 8 w kontroli przepływu – match
W PHP 8 wprowadzono nowe wyrażenie match, które jest ulepszoną wersją instrukcji switch. match daje większą kontrolę i precyzyjność dzięki ścisłemu porównaniu (===), a także pozwala na zwracanie wyników w każdym przypadku.
Składnia:
<?php
$kolor = "czerwony";
$wynik = match ($kolor) {
"czerwony" => "Kolor miłości.",
"zielony" => "Kolor natury.",
"niebieski" => "Kolor nieba.",
default => "Nieznany kolor."
};
echo $wynik; // Wyświetli: Kolor miłości.
?>
Różnice w porównaniu do switch:
- Porównanie ścisłe (
===) –matchwymaga, by zarówno typ, jak i wartość były zgodne. - Brak
break– Wmatchpo znalezieniu dopasowania nie trzeba używaćbreak, ponieważ wykonanie kodu zatrzymuje się po znalezieniu dopasowania. - Zwracanie wartości –
matchumożliwia zwrócenie wartości z każdego przypadku, co czyni go wygodnym narzędziem w wielu sytuacjach.
Porównanie switch i match:
switchmoże być bardziej elastyczny (np. dla zakresów), alematchjest bardziej precyzyjny i pozwala na krótszy, bardziej czytelny kod.
