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.