Switch VS podmínky

Hezký večer.

Chtěl bych se zeptat, jaký že je rozdíl mezi switch a tím, když použiji podmínky if, elseif a else?

Pokud chápu správně, tak při použití podmínek se pokaždé zjišťuje hodnota proměnné, ale při switch pouze jednou, je to tak?

Má to nějakou zásadní výhodu? Nějak mi tato syntaxe nepadla do oka. :)

Díky moc.
Switch je vlastně takový kanón na větvení. Na jednoduché případy vypadá if lépe, ale třeba stavové automaty dělám zásadně přes switch. De facto jsou obě konstrukce zaměnitelné, ale pro některé případy je vhodnější if a pro jiné zase switch.
Ve výsledku rozdíl není žádný. Ten je pouze v rychlosti zpracování a přehlednosti kódu.

Nedá se říct, jestli je lepší seznam podmínek nebo jeden switch, pro každou situaci může být vhodný právě ten druhý způsob. Zásadní výhoda je například zmíněný počet porovnání, nevýhodou je zase lehce vyšší řežie (která plyne ze samotné struktury switche). Pokud je však podmínek víc, všeobecně se doporučuje switch, ale zejména pro přehlednost než rychlost.

Navíc některé podmínky na switch převést nelze, typicky:
if($a == $b)
elseif($a == 3)
elseif($a == 4)
else /* Kvůli porovnávání proměnných */

A za zmínku stojí i optimalizace (příklad):
switch($a)
case 1:
case 2:
case 4:
case 5:
Pokud třeba v 90% případů se $a == 4. Tak je lepší jednu podmínku předsunout:
if($a == 4)..
else switch($a)
case 1:
case 2:
case 5:

A protože syntaxe není složitá, tak bych doporučoval si ji alespoň zapamatovat, když se ti nelíbí :)