INSTRUKCJA SWITCH
Instrukcja
switch może zastąpić w naszym przykładzie z imieniem kota blok instrukcji
if-elseif-else:
<html>
<head>
<title>Twój kot i jego imię</title>
</head>
<body>
<?
switch($imie_kota) {
case(""):
echo("<form action=imie_kota.php method=post>");
echo("Podaj imię swojego kota: <input type=text name=imie_kota>");
echo("<input type=submit value=wyślij>");
echo("</form>");
break;
case("Mruczek"):
echo("Mruczek?");
break;
case("Ramzes"):
echo("Ramzes!");
break;
default:
echo("Twój kot nazywa się... $imie_kota");
}
?>
</body>
</html>
|
Po każdym bloku występuje instrukcja
break, która mówi PHP, że ma przerwać sprawdzanie warunków po wykonaniu powyższych linii kodu (które zostaną wykonane tylko wtedy, gdy zawartość zmiennej podanej w
switch() odpowiada wartości podanej w klauzuli
case). Gdyby instrukcja
break nie została podana, PHP po znalezieniu prawdziwej wartości wykonałoby resztę kodu, nie zwracając uwagi na wartości zawarte w
case.
Istnieje również instrukcja
exit, która w odróżnieniu od
break kończy działanie skryptu.
Klauzula
default pełni taką samą funkcję jak
else w instrukcji
if, oznacza inną wartość, nie podaną wcześniej. Klauzula ta nie musi być podawana zawsze, podobnie jak
if w instrukcji warunkowej.
Alternatywny sposób zapisu
Instrukcja
switch może być również zapisana w następujący sposób:
<html>
<head>
<title>Twój kot i jego imię</title>
</head>
<body>
<?
switch($imie_kota):
case(""):
echo("<form action=imie_kota.php method=post>");
echo("Podaj imię swojego kota: <input type=text name=imie_kota>");
echo("<input type=submit value=wyślij>");
echo("</form>");
break;
case("Mruczek"):
echo("Mruczek?");
break;
case("Ramzes"):
echo("Ramzes!");
break;
default:
echo("Twój kot nazywa się... $imie_kota");
endswitch;
?>
</body>
</html>
|
Blok instrukcji
switch zostaje w tym przypadku otwarty za pomocą znaku
:, a zakończony instrukcją
endswitch.