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çbircaseile 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-elsekullanmak 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
switchgenellikle daha performanslı olabilir.
Özet:
-
switchbloğu, bir değişkenin birden fazla değere göre kontrol edilmesini sağlar. - Her case için bir eylem tanımlanabilir ve
breakile bloklar sonlandırılır. -
defaultbloğ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.