PHP Switch-Case Nedir? Kullanımı ve Örnek Uygulamalar
PHP programlama dilinde, belirli bir değişkenin değerine göre farklı işlemler gerçekleştirmek için kullanılan yapılardan biri switch-case karar yapısıdır.
Switch-case yapısı, özellikle bir değişkenin birden fazla sabit değerle karşılaştırılması gereken durumlarda kodlarımızın daha düzenli ve anlaşılır olmasını sağlar.
1. PHP SWITCH-CASE NEDİR?
Switch-case, bir değişkenin değerini kontrol ederek bu değere uygun kod bloğunu çalıştıran bir karar yapısıdır.
Örneğin, haftanın gün numarasına göre gün adını ekrana yazdırmak istediğimizi düşünelim. Bu işlemi IF-ELSE kullanarak yapabileceğimiz gibi switch-case ile de gerçekleştirebiliriz.
2. PHP SWITCH-CASE YAPISININ KULLANIMI
Switch-case yapısının genel kullanımı aşağıdaki gibidir:
<?php
switch ($degisken) {
case 1:
echo "Birinci durum";
break;
case 2:
echo "İkinci durum";
break;
case 3:
echo "Üçüncü durum";
break;
default:
echo "Hiçbir durum eşleşmedi";
}
?>
- SWITCH : Kontrol edilecek değişkeni veya ifadeyi belirtir.
- CASE : Değişkenin karşılaştırılacağı değeri belirtir. Eşleşme gerçekleştiğinde ilgili kodlar çalıştırılır.
- BREAK : Switch yapısından çıkılmasını sağlar. Kullanılmadığında sonraki case blokları da çalıştırılabilir.
- DEFAULT : Hiçbir case değeri eşleşmediğinde çalıştırılacak kodları belirtir. Kullanılması zorunlu değildir.
3. PHP SWITCH-CASE ÖRNEK UYGULAMALAR
ÖRNEK 1: HAFTANIN GÜNLERİNİ BULMA
Kullanıcının belirlediği gün numarasına göre haftanın gününü ekrana yazdıralım.
<?php
$gun = 3;
switch ($gun) {
case 1:
echo "Pazartesi";
break;
case 2:
echo "Salı";
break;
case 3:
echo "Çarşamba";
break;
case 4:
echo "Perşembe";
break;
case 5:
echo "Cuma";
break;
case 6:
echo "Cumartesi";
break;
case 7:
echo "Pazar";
break;
default:
echo "Geçersiz gün numarası!";
}
?>
Bu örnekte $gun değişkeninin değeri 3 olduğu için üçüncü case çalıştırılır.
Ekran Çıktısı: Çarşamba
ÖRNEK 2: NOT DURUMUNU BELİRLEME
Öğrencinin harf notuna göre başarı durumunu ekrana yazdıralım.
<?php
$not = "B";
switch ($not) {
case "A":
echo "Pekiyi";
break;
case "B":
echo "İyi";
break;
case "C":
echo "Orta";
break;
case "D":
echo "Geçer";
break;
case "F":
echo "Başarısız";
break;
default:
echo "Geçersiz not!";
}
?>
Switch-case yapısında yalnızca sayısal değerler değil, metinsel değerler de karşılaştırılabilir.
Ekran Çıktısı: İyi
ÖRNEK 3: BASİT HESAP MAKİNESİ
İki sayı üzerinde seçilen matematiksel işlemi gerçekleştiren bir uygulama hazırlayalım.
<?php
$sayi1 = 20;
$sayi2 = 5;
$islem = "+";
switch ($islem) {
case "+":
echo $sayi1 + $sayi2;
break;
case "-":
echo $sayi1 - $sayi2;
break;
case "*":
echo $sayi1 * $sayi2;
break;
case "/":
if ($sayi2 != 0) {
echo $sayi1 / $sayi2;
} else {
echo "Sıfıra bölme yapılamaz!";
}
break;
default:
echo "Geçersiz işlem!";
}
?>
Bu uygulamada $islem değişkenine farklı matematiksel operatörler verilerek hesaplama türü değiştirilebilir.
Ekran Çıktısı: 25
ÖRNEK 4: BİRDEN FAZLA CASE KULLANIMI
Birden fazla case ifadesinin aynı işlemi gerçekleştirmesini sağlayabiliriz.
Haftanın günlerini hafta içi ve hafta sonu olarak sınıflandıralım.
<?php
$gun = 6;
switch ($gun) {
case 1:
case 2:
case 3:
case 4:
case 5:
echo "Hafta içi";
break;
case 6:
case 7:
echo "Hafta sonu";
break;
default:
echo "Geçersiz gün!";
}
?>
Bu örnekte 1 ile 5 arasındaki günler aynı kod bloğunu, 6 ve 7 değerleri ise başka bir kod bloğunu çalıştırmaktadır.
Ekran Çıktısı: Hafta sonu
ÖRNEK 5: HTML FORM İLE SWITCH-CASE UYGULAMASI
Şimdi öğrendiğimiz switch-case yapısını bir HTML formuyla birlikte kullanalım.
Kullanıcının seçtiği dersin adını ekrana yazdıran bir uygulama geliştirelim.
Dosya Adı: ders_secimi.php
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>Ders Seçimi</title>
</head>
<body>
<h2>Ders Seçimi</h2>
<form method="post">
<label>Ders Seçiniz:</label>
<select name="ders">
<option value="1">PHP</option>
<option value="2">HTML</option>
<option value="3">CSS</option>
<option value="4">JavaScript</option>
</select>
<button type="submit">Göster</button>
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$ders = $_POST["ders"] ?? "";
switch ($ders) {
case "1":
echo "<p>PHP dersini seçtiniz.</p>";
break;
case "2":
echo "<p>HTML dersini seçtiniz.</p>";
break;
case "3":
echo "<p>CSS dersini seçtiniz.</p>";
break;
case "4":
echo "<p>JavaScript dersini seçtiniz.</p>";
break;
default:
echo "<p>Geçersiz ders seçimi!</p>";
}
}
?>
</body>
</html>
Uygulamanın Çalışması:
Kullanıcı açılır listeden bir ders seçer ve Göster butonuna tıklar. Seçilen dersin değeri POST yöntemiyle PHP'ye gönderilir. Switch-case yapısı gelen değeri kontrol ederek ilgili mesajı ekrana yazdırır.
4. PHP SWITCH-CASE VE IF-ELSE ARASINDAKİ FARKLAR
PHP'de switch-case ve IF-ELSE yapıları karar verme işlemleri için kullanılır. Ancak kullanım amaçları bazı durumlarda farklılık gösterir.
| IF-ELSE |
SWITCH-CASE |
| Birden fazla farklı koşul kontrol edilebilir. |
Genellikle tek bir ifadenin farklı değerleri kontrol edilir. |
| Büyüktür, küçüktür ve eşittir gibi karşılaştırmalar yapılabilir. |
Case değerleriyle eşleşme kontrol edilir. |
| AND ve OR gibi mantıksal operatörlerle koşullar birleştirilebilir. |
Sabit seçenekler arasında karar vermek için uygundur. |
| Karmaşık koşullarda daha esnektir. |
Çok sayıda sabit seçenek olduğunda daha okunabilir olabilir. |
IF-ELSE İLE ÖRNEK
<?php
$renk = "kirmizi";
if ($renk == "kirmizi") {
echo "Kırmızı renk seçildi";
}
elseif ($renk == "mavi") {
echo "Mavi renk seçildi";
}
else {
echo "Başka bir renk seçildi";
}
?>
SWITCH-CASE İLE AYNI ÖRNEK
<?php
$renk = "kirmizi";
switch ($renk) {
case "kirmizi":
echo "Kırmızı renk seçildi";
break;
case "mavi":
echo "Mavi renk seçildi";
break;
default:
echo "Başka bir renk seçildi";
}
?>
Her iki örnek de aynı sonucu üretir. Ancak seçenek sayısı arttığında switch-case kullanımı kodun daha düzenli görünmesini sağlayabilir.
5. PHP SWITCH-CASE KULLANIRKEN DİKKAT EDİLMESİ GEREKENLER
- Switch yapısında kontrol edilecek ifade parantez içerisinde yazılır.
- Her case ifadesinin sonunda iki nokta (:) bulunur.
- İlgili işlemler tamamlandıktan sonra genellikle break kullanılır.
- Default ifadesi, hiçbir case eşleşmediğinde çalıştırılır.
- Birden fazla case aynı kod bloğunu çalıştırabilir.
- PHP switch-case karşılaştırmalarında gevşek eşitlik kuralları uygulanır. Bu nedenle farklı veri türleri karşılaştırılırken dikkatli olunmalıdır.
6. ÖĞRENCİLER İÇİN UYGULAMA SORULARI
Uygulama 1: Kullanıcının girdiği 1 ile 12 arasındaki sayıya göre ay adını ekrana yazdıran PHP programını hazırlayınız.
Uygulama 2: Trafik ışığının rengine göre "Dur", "Hazırlan" ve "Geç" mesajlarını ekrana yazdıran bir uygulama geliştiriniz.
Uygulama 3: Kullanıcının seçtiği geometrik şekle göre kare, dikdörtgen veya üçgenin alanını hesaplayan PHP uygulamasını hazırlayınız.
Uygulama 4: HTML form üzerinden seçilen mevsime göre o mevsime ait ayları ekrana yazdıran bir PHP uygulaması geliştiriniz.
Uygulama 5: Bir restoran menüsünde seçilen ürün koduna göre ürün adını ve fiyatını ekrana yazdıran PHP uygulaması hazırlayınız.
7. SONUÇ
Bu dersimizde PHP switch-case karar yapısının ne olduğunu, nasıl kullanıldığını ve IF-ELSE yapısından farklarını öğrendik.
Switch-case, özellikle bir değişkenin farklı değerlerine göre işlem yapılması gereken durumlarda kullanışlıdır.
Öğrendiğiniz bilgileri pekiştirmek için örnek uygulamaları kendi bilgisayarınızda çalıştırabilir ve değişkenlerin değerlerini değiştirerek farklı sonuçlar elde edebilirsiniz.
Bir sonraki dersimizde PHP foreach döngüsünü ve diziler üzerinde nasıl kullanıldığını öğreneceğiz.