W PHP instrukcja switch służy do wyboru jednej z wielu gałęzi wykonania na podstawie wartości wyrażenia. Typowy zapis zawiera:
- case – kolejne porównania wartości,
- default – gałąź domyślna, gdy żaden przypadek nie pasuje,
- break – zakończenie wykonywania danego przypadku (bez tego może wystąpić tzw. "przejście" do następnego przypadku).
Równoważną konstrukcją (w sensie zachowania programu) jest zwykle łańcuch if/elseif/else, gdzie:
- każdy case odwzorowuje się na osobny warunek w if lub elseif,
- default odwzorowuje się na końcowe else,
- logika zakończenia gałęzi w switch (np. przez break) odpowiada temu, że po wejściu w blok if/elseif pozostałe warunki nie są już sprawdzane.
Poprawna jest odpowiedź "Instrukcja 2.", ponieważ przedstawia ona właśnie takie odwzorowanie: wszystkie przypadki z switch są pokryte odpowiednimi warunkami, zachowana jest gałąź domyślna oraz nie dochodzi do niezamierzonego wykonania kolejnych bloków (co w switch mogłoby się zdarzyć przy braku break).
Pozostałe propozycje są błędne typowo z jednego z powodów:
- brak gałęzi odpowiadającej default (zmienia wynik dla wartości nieobsłużonych),
- zastosowanie innego operatora porównania lub innej kolejności warunków, co może dać różne wyniki dla niektórych danych,
- odwzorowanie nie uwzględnia efektu break, przez co wykonuje się więcej niż jedna gałąź,
- częściowe pokrycie przypadków – tylko część case jest odtworzona w if/elseif.
Na egzaminie warto zawsze sprawdzić: czy wszystkie wartości są obsłużone, czy jest gałąź domyślna oraz czy przepływ sterowania jest identyczny (jedna ścieżka wykonania). Jeśli w zadaniu pojawiają się różne typy (np. liczby i napisy), zwróć uwagę, że porównania mogą działać inaczej przy porównaniu nieścisłym i ścisłym.