PHP switch naredba : PHP switch Statement

Sintaksa switch naredbe:

<?php
switch(izraz) {
  case vrijednost1:
    // blok naredbi 1
    break;
  case vrijednost2:
    // blok naredbi 2
    break;
  case vrijednost3:
    // blok naredbi 3
    break;
  default:
    // default blok naredbi
}
?>

PHP switch naredba najprije izračunava vrijednost izraza, a zatim provjerava jednu po jednu vrijednost iza ključne riječi case sve dok ona nije jednaka vrijednosti izraza. Kada nađe jednaku vrijednost izvodi se odgovarajući blok naredbi sve do prve break naredbe.

Ako vrijednost izraz nije jednaka niti jednoj od case vrijednosti i postoji default ključna riječ, php izvodi blok naredbi koje je naveden iza default ključne riječi.

Ako default nije zadan, i izraz nije jednak niti jednoj vrijednosti, program nastavlja s izvođenjem prve naredbe koja slijedi switch naredbu.

Primjer rješenja korištenjem if else naredbe

Pretpostavimo da želimo ispitati je li vrijednost varijable $grad jednak vrijednostima: Vukovar, Zagreb, Split ili Osijek.

Tada ćemo koristeći if elseif napisati slijedeći program:

<?php
$grad = 'Vukovar';
$poruka = '';

if ($grad === 'Zagreb') {
  $poruka = 'Hrvatska prijestolnica';
} elseif($grad === 'Split') {
  $poruka = 'Nema Splita to Splita';
} elseif($grad === 'Osijek') {
  $poruka = 'Ponosno stoji';
} elseif($grad === 'Vukovar') {
  $poruka = 'Grad heroj';
} else {
     $poruka = 'Grješka, nije odabran niti jedan dopušteni grad';
}

echo $poruka;
?>

Ovaj program dao bi kao izlaz poruku:

Grad heroj

Primjer pomoću switch naredbe

Pogledajmo sada kako bi ovo napravili korištenjem switch naredbe:

<?php
$grad = 'Vukovar';
$poruka = '';

switch($grad) {
  case 'Zagreb':
    $poruka = 'Hrvatska prijestolnica';
    break;
  case 'Split':
    $poruka = 'Nema Splita to Splita';
    break;
  case 'Osijek':
    $poruka = 'Ponosno stoji';
    break;
  case 'Vukovar':
    $poruka = 'Grad heroj';
    break;
  default:
    $poruka = 'Grješka, nije odabran niti jedan dopušteni grad';
}

echo $poruka;
?>

I u ovom primjeru bi dobili istu ispisanu poruku:

Grad heroj

Korištenje dvotočke

U većini programskih jezika switch naredba se piše na prethodno opisan način. PHP uvodi novinu i mogućnost drugačijeg označavanja korištenjem znaka dvotočke ( : ) i posebnih ključnih riječi.

Sintaksa switch naredbe:

<?php
switch(izraz):
  case vrijednost1:
    // blok naredbi 1
    break;
  case vrijednost2:
    // blok naredbi 2
    break;
  case vrijednost3:
    // blok naredbi 3
    break;
  default:
    // default blok naredbi
endswitch;
// nastavak programa 
?>