O lekcji
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ść:
switch
może być bardziej wydajny, gdy mamy do czynienia z wieloma przypadkami. - Czytelność:
switch
jest 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 (
===
) –match
wymaga, by zarówno typ, jak i wartość były zgodne. - Brak
break
– Wmatch
po znalezieniu dopasowania nie trzeba używaćbreak
, ponieważ wykonanie kodu zatrzymuje się po znalezieniu dopasowania. - Zwracanie wartości –
match
umożliwia zwrócenie wartości z każdego przypadku, co czyni go wygodnym narzędziem w wielu sytuacjach.
Porównanie switch
i match
:
switch
może być bardziej elastyczny (np. dla zakresów), alematch
jest bardziej precyzyjny i pozwala na krótszy, bardziej czytelny kod.