v2.5.2
Giriş yap

PHP'de Switch-Case İfadesi

Kontrol yapılarından biriside switch-case ifadesidir. Çalışma mantığı olarak if-else kontrol yapısından hiçbir farkı yoktur. Genelde kısa kontrol işlemleri için if-else, daha komplike kontrol işlemleri için daha düzgün bir yapıda ve okunabilirliği yüksek olmasından dolayı switch-case kontrol yapısı kullanılmaktadır.

İlk olarak bir önceki dersimizde verdiğimiz if-else örneğini bir tekrarlayalım.

<?php

    $x = 5;
    
    if ($x == 5){
        echo 'x değeri 5tir';
    } else if ($x > 5){
        echo 'x değeri 5ten büyüktür';
    } else {
        echo 'x değeri = ' . $x;
    }

?>

Aynı işlemi switch-case ile yapmak isteseydik şöyle olacaktı;

<?php

    $x = 5;
    switch ($x){
        case 5:
            echo 'x değeri 5tir';
        break;
        
        case $x > 5:
            echo 'x değeri 5ten büyüktür';
        break;
        
        default:
            echo 'x değeri = ' . $x;
        break;
    }

?>

Gördüğünüz gibi, kontrol edilecek değeri switch içerisinde yazıyoruz. Daha sonra case ifadesi ile kontrollerimi yapıyorum, eğer doğrudan eşitlik istiyorsam case 5 gibi tanım yapıyorum. Ancak 5'ten büyük olması gibi bir ifade kullanacaksam o zaman $x değişkenini kullanıyorum. Yani $x > 5 gibi bir koşul yazıyorum. else ifadesi ise, default ifadesindeki tanımım oluyor.

if-else ifadesi mi yoksa switch-case ifadesi mi daha okunabilir ve düzenli? Hangisinin daha okunabilir ve düzenli olduğunu düşünüyorsanız onu kullanın. Ya da her ikisini de yeri geldiğine kullanın, çok önemli bir ayrıntı değil tamamen yazana kalmış bir durum. Ancak konu HTML içinde kullanıma geldiğinde tartışmasız if-else yapısını kullanmanız gerekir.

Alternatif Sözdizimi

switch-case ifadesinin de aynı if-else ifadesinde olduğu gibi alternatif bir söz dizimi var.

<?php
    
    $x = 5;
    
    switch($x):
        
        case 5:
            echo 'x değeri 5tir';
        break;
        
        case $x > 5:
            echo 'x değeri 5ten büyüktür';
        break;
        
        default:
            echo 'x değeri = ' . $x;
        break;
        
    endswitch;
    
?>

Tabi bu alternatif sözdizimi sanırım if-else ifadesinde daha işe yarıyor :) Burada çok büyük bir fark yaratmadı, yine de bilgi amaçlı göstermek istedim.

tayfunerbilen
1532 gün önce yazdı - 3921 kez görüntülendi.
Önceki If-Else İfadesi Sonraki Ternary Operatörü