PHP - Switch uslovi


PHP if/else uslovi - switch/case

Izjava switch-case alternativa je izrazu if-else if-else, koja radi gotovo istu stvar. Izjava switch-case testira varijablu kroz niza vrijednosti dok ne nađe podudaranje, a zatim izvrši blok koda koji odgovara tom podudaranju.

switch(n){
    case label1:
        // Kod se izvršava ako se podudara sa if n=label1
        break;
    case label2:
        // Kod se izvršava ako se podudara sa  if n=label2
        break;
    ...
    default:
        // Kod koji će se izvršiti ukoliko se ne pronađe podudaranje
}

Razmotrimo slijedeći primjer, koji prikazuje drugačiju poruku za svaki dan.

<?php
$dan = date("D");

switch($dan){
    case "Pon":
        echo "Danas je ponedeljak.";
        break;
    case "Uto":
        echo "Danas je utorak.";
        break;
    case "Srj":
        echo "Danas je srijeda.";
        break;
    case "Čet":
        echo "Danas je četvrtak.";
        break;
    case "Pet":
        echo "Danas je petak.";
        break;
    case "Sub":
        echo "Danas je subota.";
        break;
    case "Ned":
        echo "Danas je nedelja.";
        break;
    default:
        echo "Opsss, nisamo pronašli odgovarajući dan.";
        break;
}
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>PHP switch-case uslovi</title>
</head>
<body>

<?php
$dan = date("D");

switch($dan){
    case "Pon":
        echo "Danas je ponedeljak.";
        break;
    case "Uto":
        echo "Danas je utorak.";
        break;
    case "Srj":
        echo "Danas je srijeda.";
        break;
    case "Čet":
        echo "Danas je četvrtak.";
        break;
    case "Pet":
        echo "Danas je petak.";
        break;
    case "Sub":
        echo "Danas je subota.";
        break;
    case "Ned":
        echo "Danas je nedelja.";
        break;
    default:
        echo "Opsss, nisamo pronašli odgovarajući dan.";
        break;
}
?>

</body>
</html>

Izjava switch-case razlikuje se od izjave if-elseif-else na jedan važan način. Izjava prebacivanja izvršava se red po red (tj. izjava po izjava) i nakon što PHP pronađe izjavu slučaja koja se ocijeni istinom (true), izvršava ne samo kod koji odgovara toj izjavi slučaja, već izvršava i sve naredne izjave slučaja do kraja. Automatski će prebaciti blok. Da biste to spriječili dodajte izjavu o prekidu (break) na kraj svakog bloka koda. Izjava o prekidu (break) govori PHP-u da se izbaci iz bloka izjave switch-case nakon što izvrši kod povezan s prvim istinitim (true) slučajem.