PHP 8'de
switch
bloğu, bir değişkenin veya ifadenin birden fazla duruma göre kontrol edilmesini sağlayan bir koşul yapısıdır.
switch
, bir dizi olası değeri kontrol eder ve bu değerlere karşılık gelen blokları çalıştırır. Bu yapı, çok sayıda
if-else
ifadesi kullanmaktan daha temiz ve okunabilir bir çözüm sunar.
switch
Sözdizimi:
switch (ifade) { case değer1: // Eğer ifade, değer1 ile eşleşiyorsa bu kod çalışır break; case değer2: // Eğer ifade, değer2 ile eşleşiyorsa bu kod çalışır break; case değer3: // Eğer ifade, değer3 ile eşleşiyorsa bu kod çalışır break; default: // Hiçbir case ile eşleşmezse bu kod çalışır }
-
ifade
: Kontrol edilecek değişken ya da ifade. -
case
: Kontrol edilen ifadenin karşılaştırılacağı değer. -
break
: Case bloğundan çıkmak için kullanılır. Eğer kullanılmazsa, sonraki tüm case blokları da çalışır (bu duruma fall-through denir). -
default
: Hiçbircase
ile eşleşme olmazsa çalıştırılacak blok.
switch
Bloğu ile Örnekler:
1. Gün Adına Göre Mesaj Gösterme
$day = "Çarşamba"; switch ($day) { case "Pazartesi": echo "Haftanın ilk günü."; break; case "Salı": echo "İkinci gün."; break; case "Çarşamba": echo "Üçüncü gün."; break; case "Perşembe": echo "Dördüncü gün."; break; case "Cuma": echo "Haftanın son iş günü."; break; default: echo "Hafta sonu!"; }
Bu örnekte, $day
değişkeni "Çarşamba" olduğunda "Üçüncü gün." mesajı ekrana yazdırılır. Eğer $day
, tanımlanmayan bir değer olsaydı, default
bloğu çalışır ve "Hafta sonu!" yazdırılırdı.
2. Sınıf Notlarına Göre Derecelendirme
$grade = "B"; switch ($grade) { case "A": echo "Mükemmel!"; break; case "B": echo "İyi iş!"; break; case "C": echo "Daha iyisini yapabilirsiniz."; break; case "D": echo "Geçtiniz, ancak daha çok çalışmalısınız."; break; case "F": echo "Sınıfta kaldınız."; break; default: echo "Geçersiz not."; }
Bu örnekte, $grade
değişkeni "B" olduğunda "İyi iş!" mesajı yazdırılır.
3. Fall-Through Kullanımı
break
kullanılmazsa, bir case bloğu çalıştıktan sonra sonraki bloklar da çalışır. Bu duruma fall-through denir. Bazen kasıtlı olarak kullanılabilir.
$number = 2; switch ($number) { case 1: echo "Bir"; case 2: echo "İki"; case 3: echo "Üç"; default: echo "Varsayılan"; }
Bu örnekte, $number
değeri 2 olduğunda, "İki", "Üç", ve "Varsayılan" yazdırılır çünkü break
kullanılmadığı için diğer case blokları da çalışır.
4. Birden Fazla Case Bloğunun Aynı Eylemi Yapması
Aynı eylemi gerçekleştirmek için birden fazla case tanımlayabilirsiniz.
$day = "Cumartesi"; switch ($day) { case "Cumartesi": case "Pazar": echo "Hafta sonu!"; break; default: echo "Hafta içi."; }
Bu örnekte, $day
değeri "Cumartesi" veya "Pazar" olduğunda "Hafta sonu!" yazdırılır. Diğer günlerde ise "Hafta içi." yazdırılır.
switch
Bloğu Avantajları:
-
Daha Temiz Kod: Birden fazla
if-else
kullanmak yerine daha temiz bir yapı sağlar. - Okunabilirlik: Aynı işlemi gerçekleştiren birden fazla koşulu yönetmek kolaydır.
-
Verimlilik: Birden fazla karşılaştırma yapılacaksa
switch
genellikle daha performanslı olabilir.
Özet:
-
switch
bloğu, bir değişkenin birden fazla değere göre kontrol edilmesini sağlar. - Her case için bir eylem tanımlanabilir ve
break
ile bloklar sonlandırılır. -
default
bloğu, hiçbir case eşleşmediğinde çalıştırılır.
switch
yapısı, çok sayıda koşullu durumun kontrol edilmesi gerektiğinde kodu daha sade ve anlaşılır kılar.