Kategorie | PHP

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

Tagy | , ,

Linkuj.cz! | Vybrali.sme.sk | | MediaBlog.cz | Del.icio.us

Příspěvků v diskuzi: 1

  1. zaachi Říká:

    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.

Zapoj se do diskuze

XHTML: Můžete používat tyto tagy: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>







Anketa