Php Switch Case

php

Merhaba ben Akif Biçek sizlerle birlikte php de sıfırdan ileri düzey makelelerimizin onikincisine başlamış bulunuyoruz. Bir önceki php if elseif else makalemizi okuduysanız sizlerle birlikte php switch case yazımız ile başlıyoruz.

Php Switch Case

Hemen her programlama dilinde olduğu gibi php’de de switch case yapısı vardır. İf elseif sıralı koşul deyiminin daha pratik ve hızlı olan yapısıdır denilebilir. Genellikle çoklu koşul olan durumlarda kullanılır.Fakat siz dilerseniz tekil olarak da kullanabilirsiniz fakat bu önerilen bir durum değil ama sonuçta bilgisayar ile sizin aranızda bir mesele bu.

Tam adıyla php switch case default ve break yapısını 2 ana başlıkta inceleyelim.

  1. Php Switch Case Default Ve Break Yapısı
  2. Php Switch Case Default Ve Break Süslü Parentezsiz Kullanımı

Php Switch Case Default Ve Break Yapısı

Yapı itibariyle if elseif deyimine benzememekte ve 4 ana ifadesi vardır bunlar.

  • switch :Koşulu başlat
  • case : Koşulu kontrol et
  • break : Koşul kontrolünü sonlandır
  • default : Koşullar olumsuz sonuçlanırsa çalışacak bölüm
Yapısı:
switch(Koşul){
		case Kontrol ifadesi:
			Kod blokları
		break;
		default:
			Kod blokları
	}

Yapımız bu şekildedir dilerseniz ilk olarak tekil koşul durumundaki kullanım ile ilgili örnekten başlıyalım.

<?php 
$Deger	=	10;

switch($Deger){
   case $Deger < 20:
     echo "Koşul geçerli oldu ve kod bloğu çalıştı.";
   break;
}
Koşul geçerli oldu ve kod bloğu çalıştı.

Göründüğü gibi switch parentezlerimizin arasına değerimizi aldıktan sonra case ifadesi ilede koşul belirtiyoruz koşul gerçekleşirsede break komutu ile php switch case sistemini durduruyoruz tabi bu örnekte tekil bir koşul kullanıldığı için break mantığı pek kavranılmayabilinir. Öyleyse çoklu koşullarla bir örnek yapalım.

<?php 
$Deger	=	10;
	
switch($Deger){
    case $Deger > 20:
	    echo "1. Koşul geçerli oldu ve kod bloğu çalıştı.";
	break;
	case $Deger > 15:
	    echo "2. Koşul geçerli oldu ve kod bloğu çalıştı.";
	break;
	case $Deger > 5:
	    echo "3. Koşul geçerli oldu ve kod bloğu çalıştı.";
	break;
	default:
	    echo "Koşul geçersiz oldu ve kod bloğu çalıştı.";
}
3. Koşul geçerli oldu ve kod bloğu çalıştı.

Eğer if else elseif çoklu koşul yapısını biliyorsanız size bu yapı çok basit gelecektir.

  • Switch deyimi koşulu başlatır. Parantezler arasına koşul ile kontrol edilecek ana değeri alır.
  • Case deyimi ile koşul belirtilir bu koşul kontrolü yukarıdaki switch parantezleri arasındaki değere göre yapılır. Kısacası koşulların belirtildiği ifade case ile başlar.
  • Break deyimi koşul geçerli olduğunda switch-case sisteminden çıkmasını sağlar şayet bu deyim olmasa koşul gerçekleştiğinde bile diğer koşulların durumuna bakmaya devam eder.
  • Default deyimi if elsif yapısındaki else deyimi ile aynı göevi yapmaktadır yani case deyimindeki hiçbir koşul sağlanmaz ise default altındaki kod bloğu çalışır.

Tam olarak swicth-case sistemini anladıysanız if elseif else yazımızdaki aylar örneğini switch-case yapısına çevirelim.

<?php 
$ay = "ocak";
switch($ay){
    case $ay == "ocak":    
	   echo "Ocak Ayındasınız";
	break;
	case $ay == "şubat":
	   echo "Şubat Ayındasınız";
	break;
	case $ay == "mart":
	   echo "Mart Ayındasınız";
	break;
        case $ay == "nisan":
	   echo "Nisan Ayındasınız";
	break;
        case $ay == "mayıs":
	   echo "Mayıs Ayındasınız";
	break;
        case $ay == "haziran":
	   echo "Haziran Ayındasınız";
	break;
        case $ay == "temmuz":
	   echo "Temmuz Ayındasınız";
	break;
        case $ay == "ağustos":
	   echo "Ağustos Ayındasınız";
	break;
        case $ay == "eylül":
	   echo "Eylül Ayındasınız";
	break;
        case $ay == "ekim":
	   echo "Ekim Ayındasınız";
	break;
        case $ay == "kasım":
	   echo "Kasım Ayındasınız";
	break;
        case $ay == "aralık":
	   echo "Aralık Ayındasınız";
	break;
	default:
	    echo "Girilen Değer ($ay) Bir Ay Değildir";
}
Ocak Ayındasınız

İf else elseif yapısınıda karşılaştırmanız için aşağıya koyuyorum.

<?php
$ay = "ocak";
if($ay ==  "ocak"){
   echo "Ocak Ayındasınız";
}elseif($ay == "şubat"){
   echo "şubat Ayındasınız";
}elseif($ay == "mart"){
   echo "mart Ayındasınız";
}elseif($ay == "nisan"){
   echo "nisan Ayındasınız";
}elseif($ay == "mayıs"){
   echo "mayıs Ayındasınız";
}elseif($ay == "haziran"){
   echo "haziran Ayındasınız";
}elseif($ay == "temmuz"){
   echo "temmuz Ayındasınız";
}elseif($ay == "ağustos"){
   echo "ağustos Ayındasınız";
}elseif($ay == "eylül"){
   echo "eylül Ayındasınız";
}elseif($ay == "ekim"){
   echo "ekim Ayındasınız";
}elseif($ay == "kasım"){
   echo "kasım Ayındasınız";
}elseif($ay == "aralık"){
   echo "aralık Ayındasınız";
}else{
    echo "Girilen Değer ($ay) Bir Ay Değildir";
}
Ocak Ayındasınız

Php Switch Case Default Ve Break Süslü Parentezsiz Kullanımı

İf yapısında olduğu gibi php switch case yapısınıda parantezsiz olarak kullanabilirsiniz. Bu tercihinize bağlı parantezli yada parantezsiz aynıdır bir fark yoktur. İlk parantez( { ) yerine iki nokta üst üste( : ) koyulur ikinci parantez ( } ) yerinede endswitch; yazılır.

Yapısı :
	switch():
		case Koşul:
			Kod blokları
		break;
		default:
			Kod blokları
	endswitch;

Daha iyi anlayabilmek için parantezli ve parantezsiz yapısı ile ilgili birer örnek yapalım ve ikisini karşılaştıralım.

<?php
$Deger = "Aralık";

switch($Deger):
  case ($Deger == "Mart") or ($Deger == "Nisan") or ($Deger == "Mayıs"):
      echo $Deger . " ayı bir İLKBAHAR ayıdır.";
  break;
  case ($Deger == "Haziran") or ($Deger == "Temmuz") or ($Deger == "Ağustos"):
      echo $Deger . " ayı bir YAZ ayıdır.";
  break;
  case ($Deger == "Eylül") or ($Deger == "Ekim") or ($Deger == "Kasım"):
      echo $Deger . " ayı bir SONBAHAR ayıdır.";
  break;
  case ($Deger == "Aralık") or ($Deger == "Ocak") or ($Deger == "Şubat"):
      echo $Deger . " ayı bir KIŞ ayıdır.";
  break;
  default:
      echo "Girilen değer ( {$Deger} ) bir ay adı değildir.";
endswitch;
Php Switch-Case
Php Switch-Case

Yukarıdaki örneğimiz end-switch yapısının parantezsiz haliydi bu örneği parantezli olarak yapmak istersek tek yapacağımız şey endswitch; yerine kapalı süslü parantez ( } ) koyup en baştaki switch(): deyiminin iki nokta üst üste karakterini silip süslü parnantez açma( { ) karakterini koyacaz.

<?php
$Deger = "Aralık";

switch($Deger){
  case ($Deger == "Mart") or ($Deger == "Nisan") or ($Deger == "Mayıs"):
      echo $Deger . " ayı bir İLKBAHAR ayıdır.";
  break;
  case ($Deger == "Haziran") or ($Deger == "Temmuz") or ($Deger == "Ağustos"):
      echo $Deger . " ayı bir YAZ ayıdır.";
  break;
  case ($Deger == "Eylül") or ($Deger == "Ekim") or ($Deger == "Kasım"):
      echo $Deger . " ayı bir SONBAHAR ayıdır.";
  break;
  case ($Deger == "Aralık") or ($Deger == "Ocak") or ($Deger == "Şubat"):
      echo $Deger . " ayı bir KIŞ ayıdır.";
  break;
  default:
      echo "Girilen değer ( {$Deger} ) bir ay adı değildir.";
}
Php Switch-Case
Php Switch-Case

Php switch-case yazımızı burada sonlandırıyoruz.

Php switch-case hakkında daha fazla bilgi için php ‘nin sitesini ziyaret edin. Veya w3schools ‘ un sitesini ziyaret edin.

Bir sonraki Php Ternary makalemizde görüşmek dileğiyle.

E-bültene Abone Ol Merak etmeyin. Spam yapmayacağız.

Yazar

İşim Yok Hobilerim Var

İlgili Yazılar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Hızlı yorum için giriş yapın.

Başka Yazı Yok

Kayıt Ol

Zaten üye misiniz? Giriş Yap

Giriş Yap

Henüz üyeliğiniz yok mu? Kayıt Ol