PHP Programlama

PHP Uygulamalar

Php ve MySQL

PHP switch Yapısı

► Detaylı anlatım

switch yapısı bir değişken veya ifadenin sonucuna bağlı olarak içinde yer alan herhangi bir seçenekteki işlem satırlarını çalıştıran bir yapıdır. switch satırında yer alan değişken veya ifade değeri birden fazla case satırında yer alan değerlerle karşılaştırılır ve eşit değerle karşılaşıldığında ilgili satırda yer alan işlem satırları çalıştırılır. Aynı işlem if elseif yapısı ile de yapılabilir. switch yapısında koşul ifadesi başlangıçta bir kez değerlendirilir ve sonuç her case satır değeri ile karşılaştırılır. if elseif yapısında ise koşul her satırda tekrar değerlendirilir. switch yapısının 2 genel yazım şekli aşağıda gösterilmektedir:

switch (değişken(ifade)) {
    case değer:
         işlem satırı;	  
         break;
    case değer:
         işlem satırı;	  
         break;
         .
         .
         .
    default:
         işlem satırı;		 
}

switch (değişken(ifade)) :
    case değer:
         işlem satırı;	  
         break;
    case değer:
         işlem satırı;	  
         break;
         .
         .
         .
    default:
         işlem satırı;		 
endswitch;

* switch ve case satırlarında kullanılan değişken değeri veya ifade sonucu integer, float veya string veri türünden olabilir.

* switch satırında yer alan ifade değeri ile aynı değeri taşıyan ilk case satırındaki işlem satırları çalıştırılır. İlk break deyimmi ile karşılaşılana veya switch yapısının sonuna kadar tüm işlem satırları çalıştırılmaya devam eder.

* Bir case satırında herhangi bir işlem satırı ve break deyimi tanımlanmayabilir. Bu durumda bir sonraki case satırından çalışmaya devam edilir.

* Eğer case satırlarının hiçbiri gereken koşulu sağlamıyorsa, default satırında yer alan işlem satırları çalıştırılır.

* switch kalıbı içinde default deyiminin, case satırları içinde de break deyiminin tanımlanma zorunluluğu yoktur.

* Eğer, case satırlarında yer alan sabit değerlerinden hiçbiri değişken değeri ile aynı değilse ve switch kalıbı içinde default satırı tanımlanmamışsa, switch kalıbından herhangi bir işlem yapmadan çıkılır.

<html>
<body>

<?php

    $deg01 = 2;

    switch ($deg01) {
        case 1:
            echo "Değişken değeri: 1 ";
            break;
        case 2:
            echo "Değişken değeri: 2 ";
            break;
        case 3:
            echo "Değişken değeri: 3 ";
            break;
    }

    echo "<br/>";
   
    $deg02 = "Kalem";

    switch ($deg02) {
        case "Kitap":
            echo "Karakter dizisi: Kitap";
            break;
        case "Defter":
            echo "Karakter dizisi: Defter";
            break;
        case "Kalem":
            echo "Karakter dizisi: Kalem";
            break;
    }
   
?>

</body>
</html>

Yukarıdaki dosyayı çalıştırdığınızda, web tarayıcınızda aşağıdaki ifadeler karşınıza çıkar:

Değişken değeri: 2
Karakter dizisi: Kalem

Yukarıdaki PHP dosyasında, ilk switch yapısında integer, ikinci switch yapısında ise string bir değişken değer karşılaştırması yapılarak, aynı değere sahip case satırlarında yer alan karakter dizileri ekran yazılır ve break deyimi ile birlikte switch yapısından çıkılır.