PHP : Pernyataan Switch…Case

PHP If…Else Vs Switch…Case

Pernyataan switch-case adalah alternatif dari pernyataan if-elseif-else, yang melakukan hal yang hampir sama. Pernyataan switch-case menguji variabel terhadap serangkaian nilai sampai menemukan kecocokan, dan kemudian mengeksekusi blok kode yang sesuai dengan kecocokan itu.

switch(n){
    case label1:
        // Code to be executed if n=label1
        break;
    case label2:
        // Code to be executed if n=label2
        break;
    ...
    default:
        // Code to be executed if n is different from all labels
}

Contoh berikut, menampilkan pesan berbeda untuk setiap hari.

<?php
$today = date("D");
switch($today){
    case "Mon":
        echo "Today is Monday. Clean your house.";
        break;
    case "Tue":
        echo "Today is Tuesday. Buy some food.";
        break;
    case "Wed":
        echo "Today is Wednesday. Visit a doctor.";
        break;
    case "Thu":
        echo "Today is Thursday. Repair your car.";
        break;
    case "Fri":
        echo "Today is Friday. Party tonight.";
        break;
    case "Sat":
        echo "Today is Saturday. Its movie time.";
        break;
    case "Sun":
        echo "Today is Sunday. Do some rest.";
        break;
    default:
        echo "No information available for that day.";
        break;
}
?>

Pernyataan switch-case berbeda dari pernyataan if-elseif-else dalam satu hal yang penting. Pernyataan switch mengeksekusi baris per baris (yaitu pernyataan demi pernyataan) dan begitu PHP menemukan pernyataan case yang bernilai true, itu tidak hanya mengeksekusi kode yang sesuai dengan pernyataan kasus itu saja, tetapi juga mengeksekusi semua pernyataan case berikutnya hingga akhir switch ter-blok secara otomatis.

Untuk mencegah hal ini, tambahkan pernyataan break di akhir setiap blok case. Pernyataan break memberitahu PHP untuk keluar dari blok pernyataan switch-case setelah mengeksekusi kode yang terkait dengan case nyata pertama.