Kursy i Poradniki IT - Adrian Kowalski
Kurs Programowania PHP dla Początkujących
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:

  1. Porównanie ścisłe (===)match wymaga, by zarówno typ, jak i wartość były zgodne.
  2. Brak break – W match po znalezieniu dopasowania nie trzeba używać break, ponieważ wykonanie kodu zatrzymuje się po znalezieniu dopasowania.
  3. Zwracanie wartościmatch 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), ale match jest bardziej precyzyjny i pozwala na krótszy, bardziej czytelny kod.