Yazdır 17 Mart 2010 Çarşamba (Hit: 17952)

if...else Kontrol Yapısı

Belirli kodları belirli şartlara bağlı olarak çalıştırmak için kullanılır. Basit bir ifadeyle eğer böyleyse şöyle yap, şöyleyse böyle yap diyebilmek için kullanılır. Kullanımı şu şekildedir.

if(koşul1){
  // koşul1 sağlanırsa çalışacak kodlar
}
elseif(koşul2){
  // koşul2 sağlanırsa çalışacak kodlar
}
elseif(koşul3){
  // koşul3 sağlanırsa çalışacak kodlar
}
.
.
.
else{
  // yukarıdaki hiçbir koşul sağlanmazsa çalışacak kodlar
}

Kontol yapısı if ile başlar isteğe bağlı olarak diğer şartları belirtmek için elseif ile, hiçbir şart sağlanmazsa else ile devam eder. Dikkat edilirse else ifadesinde herhangi bir koşul belirtmedik. Dikkat edilmesi gereken diğer husus ise if, elseif ve else ifadelerinden sonra noktalı virgül (;) konulmamasıdır.

Eğer if, elseif veya else'den sonra çalışması gereken kod bir tane ise { } parantezlerini kullanmak da gerekmez.

Aşağıdaki örneği inceleyiniz.

<?php
$a=15;
$b=9;
if($a>$b)
   echo "a değişkeni b'den büyüktür.";
elseif($a<$b)
   echo "a değişkeni b'den küçüktür.";
else
   echo "a değişkeni b'ye eşittir.";
?>

Görüldüğü gibi if, elseif ve else'den sonra birer komut olduğundan { } parantezlerini kullanmadık.

 

Örnek: Tanımlı olan sayı pozitif ise sayının kendisini ve karesini, değilse Sayı pozitif değil mesajını ekranda gösterelim.

<?php
$sayi=-3;
if($sayi>0){
   echo "Sayı=$sayi<br>";
   echo "Karesi=",$sayi*$sayi;
}
else
   echo "Sayı pozitif değil";
?>

Görüldüğü üzere if'den sonra çalışmasını istediğimiz iki tane komut olduğundan { } parantezlerini kullandık. else'den sonra ise tek komut olduğundan { } kullanmadık. Ayrıca tek bir koşula göre işlem yapacağımız için elseif kısmını da kullanmadık.

 

Örnek: Tanımlı olan kullanıcı adının ve şifrenin sırasıyla mustix ve muric olup olmadığını kontrol eden php kodunu yazalım.

<?php
$kullanici_adi="hayrix";
$sifre="muric";
if ($kullanici_adi=="mustix" and $sifre=="muric")
   echo "Giriş Başarılı";
else
   echo "Kullanıcı adı yada şifre yanlış!";
?>

Kod çalıştığında ekrana Kullanıcı adı yada şifre yanlış! mesajını yazacaktır. Çünkü if içerisinde and (ve) mantıksal operatörü ile her iki şartın sağlanması gerektiği söylendiği halde koşullardan biri sağlanmadığı için else kısmı çalışacaktır.

 

Örnek: Tanımlı olan sayı tek ise sayıyı bir arttıran php kodunu yazalım.

<?php
$sayi=7;
if ($sayi%2==1) // sayının 2'ye bölümünden kalan 1 ise
   $sayi++;
echo "Sayı=$sayi"; // ekrana Sayı=8 yazar
?>

Duruma göre kontrol yapısının sadece if kısmını da kullanabilirsiniz. else kısmı olmak zorunda değil. Bir şeye daha dikkat ediniz. { } parantezleri kullanılmadığından if altında sadece $sayi++; komutu çalışmaktadır. echo komutu her halükarda çalışacaktır. Sayıyı değiştirerek farklı sonuçları gözlemleyebilirsiniz.

Şimdi kontrol yapısının farklı bir kullanımına bakalım. Bu kullanım sadece bir değişkene atanacak değeri belirlerken ya da fonksiyona gönderilecek değeri belirlerken kullanılan bir yapıdır. Kullanımı şöyledir:
$degisken=(koşul)?koşul sağlanırsa:koşul sağlanmazsa;

Örneğimizde eğer tanımlı olan sayı tek ise sayının küpünü, değil ise karesini hesaplayıp ekranda yazdıralım.

<?php
$sayi=5;
$sonuc=($sayi%2==1)?$sayi*$sayi*$sayi:$sayi*$sayi;
echo "Sayı=$sayi<br>Sonuç=$sonuc";
?>

Aynı örneği if yapısını açıkça yazarak yapalım.

<?php
$sayi=5;
if($sayi%2==1)
   $sonuc=$sayi*$sayi*$sayi;
else
   $sonuc=$sayi*$sayi;

echo "Sayı=$sayi<br>Sonuç=$sonuc";
?>

 

Örnek: Eğer tanımlı olan boolean tipindeki değişken true ise false, false ise true yapalım.

<?php
$durum=false;
$durum=($durum==true)?false:true;
echo $durum;
?>

Yapılan işi bir cümle olarak söylemek gerekirse şöyle denilebilir. Eğer $durum değişkeni true ise false yap, değilse true yap.
Bir değişkenin true olup olmadığı şöyle de kontrol edilebilir.

<?php
$durum=false;
$durum=($durum)?false:true;
echo $durum;
?>

Ekranda true için 1, false için bir şey görünmeyecektir. Açık bir şekilde yazacak olursak:

<?php
$durum=false;

if($durum)
   $durum=false;
else
   $durum=true;

echo $durum;
?>

Dikkat ederseniz if içerisindeki değişken herhangi bir şeyle karşılaştırılmıyor. Sanki burada bir koşul yokmuş gibi geliyor. Burada aslında sorulan şudur:

if ($durum)->Eğer $durum değişkeninde bir değer varsa yada $durum değişkeni true ise

Not: Bir değişkenin değeri sıfırdan farklı ise o değişken true kabul edilir. Aşağıdaki örneği inceleyiniz.

<?php
$sayi=-5;
if ($sayi)
   echo "sayi değişkeni true'dur. Yada sıfırdan farklı bir değere sahiptir.";
else
   echo "sayi değişkeni false'dur. Yada sıfırdır. Yada boştur.";

echo "<br>";

$adi="";
if ($adi)
   echo "adi değişkeni true'dur. Yada sıfırdan farklı bir değere sahiptir.";
else
   echo "adi değişkeni false'dur. Yada sıfırdır. Yada boştur.";

echo "<br>";

$durum=false;
if ($durum)
   echo "durum değişkeni true'dur. Yada sıfırdan farklı bir değere sahiptir.";
else
   echo "durum değişkeni false'dur. Yada sıfırdır. Yada boştur.";
?>

 

Örnek: Eğer $sonuc değişkeninde bir değer varsa ekrana Sonuç hesaplandı, yoksa Sonuç hesaplanamadı ifadelerini yazdıralım.

<?php
$sonuc="";
echo ($sonuc)?"Sonuç hesapladı.":"Sonuç hesaplanamadı.";
?>

Burada kontrol yapısından dönen değer doğrudan echo fonksiyonuna verilmiştir.

Farklı şekilde örnekler yaparak merak ettiğiniz işlemlerin sonuçlarını rahatlıkla sizler de öğrenebilirsiniz.


Bu site meslek liselerinde bilişim bölümü web programcılığı dalında okutulan internet programcılığı dersine yardımcı olması için tasarlanmıştır. İletişim için iletisim@phpdefteri.com
Apache PHP MySQL PhpMyAdmin EasyPHP Xampp AppServ Wamp W3School

www.phpdefteri.com © 2010