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.