PHP Switch Case Kullanımı ve Kod Örnekleri

Yazılım ile program oluştururken iş katmanındaki sorguların belirli koşullara göre yazılması ve istenen sonucun da yine belirli koşullara göre çıkması istenir.

Programlama dilinden bağımsız olarak koşullar if-else bloklarıyla veya switch case yapılarıyla ifade edilmekte, kontroller sağlanmaktadır. Her iki koşul türü de aynı sonucu üretse de birbirine göre farklılıkları mevcuttur. Bu yazımızda PHP switch case kullanımı ve örneklerine detaylı bir şekilde yer vereceğiz.

Switch case yapısı, tanımlanan değişkenin durumuna bağlı olarak, değişkene atanan değere göre koşula bağlanması ve koşula göre sonuç üretmesi için kullanılır.

Tek tek if else bloklarının tanımlanmasıyla da gerçekleştirilebilen bu işlemlerin daha kısa tutulması ve kod kalabalığını önüne geçilmesi için switch case yapısının kullanılması önerilmektedir.

Programlamada uzun kod satırları birden fazla sorgunun çalışmasına dolayısıyla programın verimsiz hale gelmesine sebep olabilir. Kod okunabilirliğinin üst seviyede sağlanması için de önemli olan switch case yapısı PHP’de sıklıkla kullanılan koşul deyimlerindendir.

PHP Switch Case Kullanımının Amacı Nedir?

PHP dilinde switch case kullanımının amacı if komutu ile aynı olup akış denetimini kontrol etmektedir. Switch case yapısıyla birlikte program akışında verilen şartlara uygun değerlerin uygun olup olmadığına bakılır. Bu şartlara göre işlemler gerçekleştirilir.

Karmaşık if else bloklarının yerine tercih edilen switch case yapısıyla birlikte daha okunabilir kodların yazılması mümkün hale gelir.

Switch case komutu ile istenen sonuçlardan herhangi biri çıkması durumunda ekrana ilgili sonuç yazılır. Eğer şarta uygun olmayan bir sonuç çıkarsa default değerde verilen sonuç ekrana yazdırılır.

Bilgi: PHP’de Switch-case komutu ile yaptığınız işlemlerin tamamını if-else komutu ile yapabilirsiniz. Kodda yapmak istediklerinize göre iki yapıdan birini seçmenin kodu daha okunaklı ve verimli hale getirdiği durumlar olabilir.

PHP Switch Case Kullanımı

PHP’de switch case kullanımı aşağıdaki gibidir:

<?php
switch($degisken)
{
case kosul1:
//Koşul 1 çalışınca çalışacak komutlar
break;
case kosul2:
//Koşul 2 çalışınca çalışacak komutlar
break;
//koşul sayısı artırılabilir
default:
//üstte yazılan koşullar sağlanmadığı durumlarda çalışacak komutlar
}?>

PHP’de Switch – Case yapısında kullanılan komutlar şu şekildedir.

  • switch
  • case
  • break
  • default

Switch: Switch($degisken) şeklinde Switch – Case yapısında kontrol edilecek değişkeni gösterir.

Case: Koşul tanıtılır ve ardından koşulun sağlanması durumunda uygulanması gereken kodlar yazılır.

Break: Aranan koşul bulunduktan sonra kodun Switch – Case yapısından çıkmasını sağlar. Kodu daha hızlı ve verimli hale getirir.

Default: Case yapılarında yazılan koşullar sağlanmadığında default yapısı çalışır. If – Else yapısındaki else ifadesine benzetilebilir.

PHP Switch Case Kod Örnekleri

PHP’de switch case kullaımı için örnekler aşağıdaki gibidir:

Örnek 1: Fonksiyonda verilen ifadeye göre matematik işlemlerini gerçekleştiren program

<?php
function islem($deger1, $deger2, $islemturu)
{
switch($islemturu)
{
case 'topla':
echo $deger1+$deger2;
break;
case 'fark':
echo $deger1-$deger2;
break;
case 'carp':
echo $deger1*$deger2;
break;
case 'bol':
echo $deger1/$deger2;
break;
default:
echo "geçersiz işlem türü";
break;
}
}
islem(6,2,'topla'); // Ekrana 8 yazar
islem(6,2,'fark'); //Ekrana 4 yazar
islem(6,2,'carp'); // Ekrana 12 yazar
islem(6,2,'bol'); // Ekrana 3 yazar
islem(6,2,'mod'); // Ekrana geçersiz işlem türü yazar
?>

Örnek 2: Fonksiyonda verilen ifadeye göre mevsime ait olan ayları ekrana yazdıran program

<?php
function yazdir($mevsim)
{
switch($mevsim)
{
case 'yaz':
echo "Haziran - Temmuz - Ağustos";
break;
case 'kış':
echo "Aralık - Ocak - Şubat";
break;
case 'ilkbahar':
echo "Mart - Nisan - Mayıs";
break;
case 'sonbahar':
echo "Eylül - Ekim - Kasım";
break;
default:
echo "geçersiz değer";
break;
}
}
yazdir("kış"); //Ekrana Aralık - Ocak - Şubat yazar
yazdir("yaz"); // Ekrana Haziran - Temmuz - Ağustos yazar
yazdir("ilkbahar"); // Ekrana Mart - Nisan - Mayıs yazar
yazdir("sonbahar"); //Ekrana Eylül - Ekim - Kasım yazar
yazdir("deneme") // Ekrana geçersiz değer yazar
?>

Örnek 3: İki sınav notunun ortalamasına göre dersten geçip kaldığını gösteren program

<?php

function sonuc($sinav1, $sinav2)
{
$ortalama = ($sinav1 + $sinav2) / 2;

switch($ortalama)
{
case $ortalama > 50:
echo "geçti";
break;
default:
echo "kaldı";
break;
}
}
sonuc(20,70); //Ekrana kaldı yazar
sonuc(55,92); //Ekrana geçti yazar
?>

Örnek 4: ATM örneği

<?php

function ATM($miktar,$islem)
{
$bakiye = 100;
switch ($islem) {
case 'Ekle':
$bakiye = $bakiye + $miktar;
echo $bakiye;
break;
case 'Çek':
$bakiye = $bakiye - $miktar;
echo $bakiye;
break;

default:
echo "geçersiz işlem";
break;
}
}
ATM(20,"Ekle"); // Ekrana 120 yazar
ATM(10, 'Çek'); // Ekrana 90 yazar
ATM(30, "deneme"); // Ekrana geçersiz işlem yazar
?>

PHP’de İf Else İle Switch Case Farkları

PHP’de if else yapısı ile switch case yapıları kontrol mekanizması olarak kullanılan ve program akışına göre istenen sonucun belli koşullara göre ekrana bastırılması için kullanılan yapılardır.

If else ile switch case yapıları arasındaki farklar genel olarak aşağıdaki gibidir:

  • If blokları arasında  yer verilen ifadeler if ya da else bloğu altındaki ifadelerin çalıştırılıp çalıştırılmayacağına karar verir. Switch yapısındaki ifade ise hangi durumun yürütüleceğine karar veren ifadedir.
  • If bloklarında eşitlikler ve mantıksal ifadeler kontrol edilir.
  • If bloklarında ifadeler yanlış çıktığında else bloğundaki ifadeler çalıştırılır. Switch tarafında ise ifadelerin yanlış olması durumunda varsayılan ifade(default) ekrana bastırılır.
  • İzlenebilirlik ve koda müdahale edilebilirlik açısından switch case yapısı if else yapısına göre daha kolaydır.

Switch case yapısına verdiğimiz örneklerden birini if else blokları içinde yapmak istendiğinde aşağıdaki gibi yazım olacaktır.

Örnek: Fonksiyonda verilen ifadeye göre matematiksel işlemleri If Else yapısıyla gerçekleştiren program

<?php
function islem($deger1, $deger2, $islem)
{
if($islem == "Topla")
{
echo $deger1 + $deger2;
}
else if($islem =="Fark")
{
echo $deger1-$deger2;
}
else if($islem == "Carp")
{
echo $deger1*$deger2;
}
else if($islem == "Bol")
{
echo $deger1/$deger2;
}
else
{
echo "geçersiz işlem türü";
}
}
islem(10,2,"Topla"); //Ekrana 12 yazdırılacaktır.
?>
Kategoriler PHP

Yorum yapın