PHP5 jednoduše, snadno a rychle (8.) - rozcestník
Publikováno 08 Srpen 2008, Petr Láslo
Rozcestník SWITH
Switch/Case
Řekněmě, že bychom potřebovali změnit hodnotu proměnné podle daných podmínek. Například by uživatel vyplnil formulář, ve kterém zadá zeměpisnou oblast. Pak bychom chtěli nastavit zvláštní kód, který by této oblasti odpovídal. K tomu můžeme použít konstrukci if/elseif/else, ale to by znamenalo opakované porovnávání jedné proměnné s různými hodnotami. Naproti tomu konstrukce switch/case porovná proměnnou s hodnotou jen jedenkrát, přestože porovnáváme několik hodnot, což je mnohem rychlejší.
Kód použitím if/elseif/else:
if ($oblast == ‘Praha’) {
$kod = ‘1′;
}
elseif ($oblast == ‘Brno’) {
$kod = ‘2′;
}
else {
$kod = ‘3′; // Bratislava;
}
a stejný kód použitím switch/case:
switch ($oblast) {
case ‘Praha’:
$kod = ‘1′;
break;
case ‘Brno’:
$kod = ‘2′;
break;
default: // Bratislava
$kod = ‘3′;
}
Všimněte si příkazu break. Tento příkaz ukončí průběh konstrukce switch a skript bude pokračovat následujícími příkazy. Kdybychom neměli break na konci každého case, průběh konstrukce switch by pokračoval následujícím case. Zde se switch/case liší od if/elseif/else, který provede jenom jednu z alternativ.
Korekce: Jindřich Domanja, 8. 8. 2008
Linkuj.cz! | Vybrali.sme.sk | | MediaBlog.cz | Del.icio.us





Srpen 25th, 2008 v 22.03
Mozna by mebylo spatne do clanku doplnit prave vyznam prikazu break, ktery nemusi byt pouzit v kazdem CASE, ktery switch obsahuje.
Napriklad vami napsany switch neni uplne idealni, co do osetreni hodnot, a prave tohle lze resit spravnym umistenim BREAKu.