Instrukcja switch w PHP

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

switch to instrukcja wyboru, która pozwala wykonać różne fragmenty kodu zależnie od wartości zmiennej lub wyrażenia. Jest często czytelniejsza niż długa seria warunków if, gdy porównujemy jedną wartość z wieloma możliwymi przypadkami.

Składnia

switch ($zmienna) {
    case 1:
        // kod dla wartości 1
        break;
    case 2:
        // kod dla wartości 2
        break;
    default:
        // kod domyślny
}

Znaczenie elementów

  • switch ($zmienna) - wskazuje wartość, która będzie porównywana,
  • case - określa konkretny przypadek,
  • break - przerywa dalsze sprawdzanie przypadków,
  • default - wykonuje się, gdy żaden case nie pasuje.

Przechodzenie między przypadkami

Jeżeli po case nie ma instrukcji break, PHP przechodzi do następnego przypadku. Nazywa się to fall-through.

Przykład:

switch ($liczba) {
    case 10:
    case 20:
        $liczba++;
        break;
    default:
        $liczba = 0;
}

Ten kod oznacza: jeżeli $liczba ma wartość 10 albo 20, zwiększ ją o 1. W przeciwnym razie ustaw ją na 0.

Równoważny zapis za pomocą if:

if ($liczba == 10 or $liczba == 20)
    $liczba++;
else
    $liczba = 0;

W zadaniach egzaminacyjnych należy zwracać uwagę na brak break, ponieważ może on zmienić działanie całej instrukcji.