Veysel Uğur KIZMAZ

PHP If-Else ve Switch-Case Yapıları

16.06.2012Okunma Sayısı: 5517Kategori: PHP

 Bu makalemizde PHP’de if-else, switch-case yapılarını inceleyeceğiz.

 
Önce if-else yapısını bir örnek üzerinde inceleyelim.
 
 
  1. <?php
  2.             $sayi = 10;
  3.             if($sayi == 10){
  4.                         echo "Dogru";
  5.             }
  6.             else{
  7.                         echo "Yalnis";
  8.             }
  9. ?>
 
if-else yapısı diğer programlama dillerindekine benzer şekilde oluşturulmaktadır.
 
IF-ELSE yapısındaki koşul operatörlerine göz atalım.
 
$x == $y
$x’in değeri, $y’nin değerine eşit mi kontrol eder
$x === $y
$x, $y’ye eşit mi kontrol eder
$x != $y
$x’in değeri, $y’nin değerine eşit değil mi kontrol eder
$x <> $y
$x’in değeri, $y’nin değerine eşit değil mi kontrol eder
$x !== $y
$x, $y’ye eşit değil mi kontrol eder.
$x < $y
$x’in değeri $y’nin değerinden küçük mü kontrol eder.
$x > $y
$x’in değeri $y’nin değerinden büyük kontrol eder.
$x <= $y
$x’in değeri $y’nin değerinden küçük eşit mi kontrol eder.
$x >= $y
$x’in değeri $y’nin değerinden büyük eşit mi kontrol eder.
 
Burada, birçok programlama dilinde olmayan bir koşul ifadesi söz konusudur : ===
 
Bunu basit bir örnekle inceleyelim: Değişkenlerle sayı oluşturalım ve bu sayıların değerlerini karşılaştırıp sonuçlarına göre === ne anlama geliyor daha iyi kavrayalım.
 
İlk örneğimiz:
 
 
  1. <?php
  2.             $sayi = 10;
  3.             $sayi2 = 10;
  4.             if($sayi == $sayi2){
  5.                         echo("Esit");
  6.             }
  7.             else{
  8.                         echo("Esit Degil");
  9.             }
  10. ?>
 
 
Tamsayı tipinde iki değişken oluşturduk ve bunların == ile karşılaştırmasını yaptık. Çalıştırdığımızda aşağıdaki sonuç ortaya çıkacaktır.
 
 
Şimdi bu değişkenleri === ile karşılaştıralım.
 
 
  1. <?php
  2.             $sayi = 10;
  3.             $sayi2 = 10;
  4.             if($sayi === $sayi2){
  5.                         echo("Esit");
  6.             }
  7.             else{
  8.                         echo("Esit Degil");
  9.             }
  10. ?>
 Çalıştırdığımızda ekran çıktısı aşağıdaki gibi olacaktır.
 
 
Değişkenlerimizin tipi de değerleri de aynı olduğu için iki örneğimizde de “Esit” sonucu ekrana gelmiştir. Şimdi kodumuzu şu şekilde düzenleyip == ile karşılaştırma yapalım:
 
 
  1. <?php
  2.             $sayi = 10;
  3.             $sayi2 = "10";
  4.             if($sayi == $sayi2){
  5.                         echo("Esit");
  6.             }
  7.             else{
  8.                         echo("Esit Degil");
  9.             }
  10. ?>
 
Örneği incelediğimizde, $sayi1 ve $sayi2 değişkenlerinin türleri farklı (int, string) fakat değerleri aynı. Yukarıdaki tabloda dikkat ettiyseniz == için değerlerini karşılaştırıyor demiştik. Kodumuz bu şekildeyken çalıştırdığımızda aşağıdaki ekran çıktısını alacağız çünkü iki değişkenin de değeri 10’dur.
 
 
Şimdi aynı örneği === ile çalıştıralım.
 
 
  1. <?php
  2.             $sayi = 10;
  3.             $sayi2 = "10";
  4.             if($sayi === $sayi2){
  5.                         echo("Esit");
  6.             }
  7.             else{
  8.                         echo("Esit Degil");
  9.             }
  10. ?>
 
Ekran çıktısı aşağıdaki gibi olacaktır.
 
 
Sonucun böyle gelmesinin nedeni, ===’in tiplerin eşitliğini de kontrol etmesidir. İki değişkenin değerleri aynı fakat tipleri farklı olduğu için “Esit Degil” sonucu ekranda yazmıştır.
 
Şimdi bir diğer koşul ifadesi olan switch-case’e  ve if-else yapısında else-if’in kullanıma bir arada göz atalım.
 
Örneğin içeri gelen bir kişinin ismine göre kim geldiyse onun geldiğini ekranda yazan bir işlem yapalım. Bunu önce if-else bloklarıyla yapalım:
 
 
  1. $isim = "veysel";
  2. if($isim == "veysel"){
  3.             echo("veysel geldi");
  4. }
  5. else if($isim == "ugur"){
  6.             echo("ugur geldi");
  7. }
  8. else if($isim == "engin"){
  9.             echo("engin geldi");
  10. }
  11. else{
  12.             echo("kim geldi?");
  13. }
 
if ve else if’lerdeki koşullara uyan varsa uyan bloğu çalıştırıp başkasına bakmadan çıkar. Eğer hiçbir koşuş uymuyorsa else bloğu çalışacaktır.
 
Şimdi aynı örneği switch-case ile yapalım:
 
 
  1. $isim = "veysel";
  2. switch($isim){
  3.             case "veysel":
  4.                        echo "veysel geldi";
  5.                        break;
  6.             case "ugur":
  7.                        echo "ugur geldi";
  8.                        break;
  9.             case "engin":
  10.                        echo "engin geldi";
  11.                        break;
  12.             default:
  13.                        echo "kim geldi";
  14.                        break;
  15. }
 
 
Switch-case yapısında ise switch(değişken), case’in yanında ise değişkenin karşılaştırılacağı değerler yazılıp kontrol yapılır. IF-ELSE ile benzer yapıda çalışmaktadır.
 
Bir sonraki makalemizde PHP’de döngülere göz atacağız.
 
 
 
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi
veysel@ugurkizmaz.com