Hangi programlama dili olursa olsun programın akışını kontrol etmek , gerektiği gibi yönlendirebilmek için bazı kontroller yapmamız gereklidir.
Bir program içerisinde bazı kod satırlarının, belirli şartlar sağlanmadan çalışmasını engellemek için , yada bu durumun tersi olarak belirli şartlar sağlandığında kod satırlarının çalışmasını sağlamak için if kontrol deyimine ihtiyaç duyulur. Örneğin üye girişi yapmayan birisi yorum yazamaz. Bu gibi durumlarda if deyimi kullanılabilir. if kelime manası eğer anlamında, else in karşılığı da değilse olarak söylenebilir.
Kullanım şekli :
if (şart) { şart doğru ise yapılacak işlemler; } yapılacak diğer işlemler;
Burada küme parantezleri if bloğunu(kapsadığı aralığı) temsil eder. Yukarıdaki kullanım şeklinde belirtilen şart yazılır iken karşılaştırma operatörleri kullanılır. Karşılaştırma operatörleriyle belirtilen şartın sağlanması durumunda true sağlanmaması durumunda false değeri üretilir. Yani şart sağlanır ise(true ise) önce küme parantezleri arasındaki komut yada komutlar çalışır sonra küme parantezinin kapatıldığı satırdan sonraki varolan işlemler gerçekleşmeye devam eder. Şart sağlanmaz ise(false ise) küme parantezinin kapatıldığı satırdan sonraki işlemler gerçekleşmeye devam eder.
if (şart) { şart doğru ise yapılacak işlemler; }else { şart yanlış ise yapılacak işlemler; } yapılacak diğer işlemler;
Buradaki kullanımda şöyle bir durum vardır. Bir şart ya doğrudur ya da yanlış ara bir durum yoktur. Dolayısıyla buradaki kullanınmda ya if bloğu arasındaki işlemler yada else bloğu arasındaki işlemler yapılacaktır.
Örnek :
<?php $sayi1=10; $sayi2=20; //$sayi1 değişkenin değeri $sayi2 değişkeninin değerine eşit olmadığından sonuç yanlış //yani false olur if içerisi çalışmaz if ($sayi1==$sayi2) { echo "Sayılar eşittir"; //eğer $sayi1 değeri $sayi2 nin değerine eşit ise ekrana Sayılar eşittir yaz } //şart yanlış olduğundan ekrana herhangi birşey yazmayacaktır. ?>
Örnek :
<?php $sayi1=10; $sayi2=10; //$sayi1 $sayi2 ye eşit olduğundan sonuç doğru yani true olur if içerisi çalışır if ($sayi1==$sayi2) { echo "Sayılar eşittir"; //eğer $sayi1 değeri $sayi2 nin değerine eşit ise ekrana Sayılar eşittir yaz } //şart doğru olduğundan ekrana "Sayılar eşittir" yazacaktır. ?>
Örnek :
<?php $sayi1=10; $sayi2=20; //$sayi1 $sayi2 ye eşit olmadığından sonuç yanlış yani false olur if içerisi çalışmaz if ($sayi1==$sayi2) { //eğer $sayi1 değeri $sayi2 nin değerine eşit ise ekrana Sayılar eşittir yaz echo "Sayılar eşittir"; } else { //eğer $sayi1 değeri $sayi2 nin değerine eşit değil ise ekrana Sayılar eşit değil yaz echo "Sayılar eşit değil"; } //şart yanlış olduğundan else bloğu çalışır ekrana "Sayılar eşit değil" yazacaktır. ?>
Yukarıdaki örneklerden bir adım daha ileri giderek bir birini takip eden if blokları ile ilgili örnekler .
Örnek :
<?php $sayi1=10; $sayi2=20; if ($sayi1>$sayi2) { //eğer $sayi1 değeri $sayi2 nin değerinden büyük ise $sayi1 in değerini ekrana yaz echo $sayi1; } else if ($sayi2>$sayi1) { //bir önceki şart doğru değil ise , eğer $sayi2 nin değeri $sayi1 nin değerinden büyük ise ekrana $sayi2 nin değerini yaz echo $sayi2 }else { //ilk iki koşulda sağlanmadıysa ekrana sayılar eşittir yaz echo "Sayılar Eşittir"; } //şart yanlış olduğundan else bloğu çalışır ekrana "Sayılar eşit değil" yazacaktır. ?>
Örnek :
<?php $yas=17; if ($yas>18) { //eğer $yas değeri 18 den büyük ise echo "18 yaşından büyüksünüz"; } else if ($yas==18) { //bir önceki şart doğru değil ise , eğer $yas değeri 18 ise echo "18 yaşındasınız"; } else { //ilk iki koşulda yanlış ise echo "18 yaşından küçüksünüz"; } //ilk iki koşulda sağlanmadığı için en sondaki else çalışacaktır //ekrana "18 yaşından küçüksünüz" mesajını yazacaktır. ?>
if ile birden fazla koşul kontrolü
Bir if bloğunda birden fazla koşul kontrolü yapmak için mantıksal operatörler kullanılır.
Operatör | Tanımı | Örnek |
&& | Ve (and) | $a==$b && $a==$c //$a hem $b ye hemde $c ye eşit ise true değeri döner |
|| | veya (or) | $a==$b || $a==$c //$a değeri $b veya $c değişkenlerinden herhangi birinin değerine eşit ise true değeri döner |
! | değil (not) | ! $a anın değerinin mantıksal tersi |
and | Ve | && ile aynı işlemi gerçekleştirir |
or | veya | || ile aynı işlemi gerçekleştirir |
Tabloda görüldüğü gibi ve bağlacı kkoşullar yazıldığında true (doğru) değeri dönmesi için bütün şartların sağlanması gerekir.
Örnek : ve bağlacı
<?php $kullaniciadi="şefik"; $sifre="1111"; if($kullaniciadi=="şefik" && $sifre="333") { echo "Giriş başarılı"; //bütün şartlar doğru ise if bloğu çalışır }else { echo "Kullanıcı adı veya şifre yanlış"; // şartlardan herhangi birisi yanlış ise else bloğu çalışır } ?>
Çıktısı : Örnekte kullanıcıadı doğru ancak şifre yanlış girilmiştir . Bundan dolayı else bloğu çalışır.
Kullanıcı adı veya şifre yanlış
Örnek : veya bağlacı
<?php $notu=105; if($notu<0 || $notu>100) { echo "Geçersiz not girişi"; // şartlardan herhangi birisi doğru ise if bloğu çalışır }else { echo "Girilen not geçerli"; //bütün şartlar yanlış ise else bloğu çalışır } ?>
Çıktısı : Örnekte $not u>100 koşulu sağlandığından dolayı if bloğu çalışır.
Geçersiz not girişi