PHP - Switch İfadesi

Carissa

Administrator
Katılım
2 Mar 2015
Konular
59,189
Mesajlar
88,441
Çözüm
109
Online süresi
4mo 16d
Reaksiyon Skoru
14,280
Altın Konu
2,398
TM Yaşı
11 Yıl 3 Ay 7 Gün
Başarım Puanı
1,051
MmoLira
695,092
DevLira
234
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!



PHP'deki switch ifadesi, aynı ifade üzerindeki bir dizi if…else ifadesine alternatif olarak ele alınabilir. Birçok farklı değere sahip bir ifadeyi veya değişkeni karşılaştırmanız ve hangi değere eşit olduğuna bağlı olarak farklı bir kod parçası yürütmeniz gerektiğini varsayalım. Böyle bir durumda, birden fazla if…elseif…else yapısı kullanırsınız.

Ancak, böyle bir yapı kodu oldukça dağınık ve takip edilmesi zor hale getirebilir. Bu tür kodları basitleştirmek için, uzun if..elseif..else kod bloklarından kaçınmak için daha kompakt bir alternatif sunan PHP'deki switch case yapısını kullanabilirsiniz.

Aşağıdaki PHP betiği if elseif ifadelerini kullanır.

PHP:
if ($x == 0) {
   echo "x equals 0";
} elseif ($x == 1) {
   echo "i equals 1";
} elseif ($x == 2) {
   echo "x equals 2";
}

Aynı sonucu aşağıda gösterildiği gibi switch case ifadelerini kullanarak da elde edebilirsiniz.

PHP:
switch ($x) {
   case 0:
      echo "x equals 0";
   break;
   case 1:
      echo "x equals 1";
   break;
   case 2:
      echo "x equals 2";
   break;
}

Switch ifadesinin ardından, her case cümlesindeki değerle ardışık olarak karşılaştırılan bir ifade gelir. İfadenin case'lerden herhangi biriyle eşleştiği bulunursa, karşılık gelen ifade bloğu yürütülür.

  • Switch ifadesi süslü parantez içindeki ifadeleri satır satır yürütür.
  • Bir case ifadesinin değeri switch ifadesinin değeriyle eşleşen bir değere denk geldiğinde, PHP switch bloğunun sonuna kadar veya ilk kez bir break ifadesiyle karşılaştığı zamana kadar ifadeleri yürütmeye başlar.
  • Bir case'in ifade listesinin sonuna break ifadesi yazmazsanız, PHP takip eden case'in ifadelerini yürütmeye devam edecektir.

Örnek

Yukarıdaki kodu kesmeleri kaldırarak çalıştırmayı deneyin. x değeri 0 ise, çıktının "x eşittir 1" ve "x eşittir 2" satırlarını içerdiğini göreceksiniz.

PHP:
<?php
   $x=0;
   switch ($x) {
      case 0:
         echo "x equals 0 \n";
      case 1:
         echo "x equals 1 \n";
      case 2:
         echo "x equals 2";
   }
?>

Aşağıdaki çıktıyı üretecektir:

x equals 0
x equals 1
x equals 2

Bu nedenle her case bloğunun bir break ifadesiyle sonlandırıldığından emin olmak önemlidir.


Switch'teki Varsayılan Durum

Özel bir durum varsayılan durumdur. Bu durum diğer durumlar tarafından eşleştirilmeyen her şeyle eşleşir. Varsayılan kullanmak isteğe bağlıdır, ancak kullanılırsa, kıvırcık parantezlerin içindeki son durum olmalıdır.

Birden fazla mantıksal ifadeyi veya operatörüyle birleştirerek birden fazla durumu bir araya getirebilirsiniz.

PHP:
<?php
   $x=10;
   switch ($x) {
      case 0:
      case 1:
      case 2:
         echo "x between 0 and 2 \n";
      break;
      default:
         echo "x is less than 0 or greater than 2";
   }
?>

Karşılaştırılacak değerler case ifadesinde verilmiştir. Değer bir sayı, bir dize veya hatta bir fonksiyon olabilir. Ancak case ifadesinde karşılaştırma operatörlerini (<, > == veya !=) bir değer olarak kullanamazsınız.

case ifadesinde iki nokta üst üste yerine noktalı virgül kullanmayı seçebilirsiniz. Eşleşen bir case bulunamazsa ve varsayılan bir dal da yoksa, hiçbir if ifadesi doğru değilmiş gibi hiçbir kod yürütülmeyecektir.

Anahtar-son anahtar ifadesi

PHP, switch yapısını switch-endswitch ifadeleriyle sınırlayarak alternatif sözdiziminin kullanımına izin verir. Aşağıdaki switch case versiyonu kabul edilebilir.

PHP:
<?php
   $x=0;
   switch ($x) :
      case 0:
         echo "x equals 0";
      break;
      case 1:
         echo "x equals 1 \n";
      break;
      case 2:
         echo "x equals 2 \n";
      break;
      default:
         echo "None of the above";
   endswitch
?>

Switch…Case'de Break İfadesinin Kullanımı

Varsayılan durumu sonlandırmak için break yazmanıza gerek olmadığı açıktır , çünkü bu switch yapısındaki son durumdur.

Örnek​

Aşağıdaki örneğe bir göz atın.

PHP:
<?php
   $d = date("D");

   switch ($d){
      case "Mon":
         echo "Today is Monday";
      break;

      case "Tue":
         echo "Today is Tuesday";
      break;
      
      case "Wed":
         echo "Today is Wednesday";
      break;

      case "Thu":
         echo "Today is Thursday";
      break;

      case "Fri":
         echo "Today is Friday";
      break;

      case "Sat":
         echo "Today is Saturday";
      break;

      case "Sun":
         echo "Today is Sunday";
      break;

      default:
         echo "Wonder which day is this ?";
   }
?>

Aşağıdaki çıktıyı üretecektir:

Today is Monday
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)