23 Haziran 2016 Perşembe

Php'de if komutu

if komutu
Doğadaki her Ģey sebepler – sonuçlar üzerine kuruludur.
Örneğin gök gürlüyorsa - yağmur yağacak, benzin
yoksa-araba duracak gibi. Programlarda bunun gibi
koĢullara göre farklı iĢlemler yapmak üzere tasarlanırlar.
Örneğin alıĢveriĢ yaptınız, aldığınız Ģey ; ekmek ise KDV
%1, temizlik maddesi ise %18, lüks tüketim ise %25,
temel gıda ise %8 olarak hesaplanacaktır. Burada
program mantığıda Ģu olmalıdır.
Kontrole baĢla
Eğer alınan ekmek ise KDV %1 hesapla
Eğer ekmek değilse kontrol et
temel gıda ise KDV % 8 hesapla
Eğer temel gıda değilse kontrol et
PHP programında if deyimi bunu sağlar. Kelime anlamı
eğer olan if deyimi ile programımızı karar almaya zorlar
ve bu duruma göre değiĢik kısımların yürütülmesini
sağlarız. If PHP dilinin ayrılmıĢ kelimelerinden (reserved
words) birisidir. (Nerdeyse tüm dillerde if reserved word
olup karĢılaĢtırma için kullanılır)
if ( koĢullar ) {
koĢullar doğru ise yapılacak iĢlere ait komutlar
}
elseif (diğer koĢullar) {
diğer koĢullar doğru ise yapılacak iĢlere ait komutlar
}
else {
diğer her durumda yapılacak iĢlere ait komutlar
}
PHP, if ifadesinde verilen koĢulu doğru olarak hesaplarsa,
ifadeye ait ilk süslü parantezin içindeki komutları
çalıĢtırır; bu Ģartlar doğru değilse, elseif deyimi ile
verebileceğimiz baĢka bir grup koĢulun doğru olup
olmadığını sınayabiliriz. Bu koĢullar yerine geliyorsa,
PHP, elseif bölümündeki komutları çalıĢtırır. Eğer tüm
koĢullar sağlanmadığı takdirde çalıĢtırılmasını istediğimiz
komutlar varsa onlarıda else bölümünde belirtiriz. if
koĢulu doğru değilse, koĢula ait komutları es geçer ve
varsa elseif deyiminin koĢullarını test eder; elseif bölümü
yok fakat else bölümü varsa bu bölümdeki komutları
çalıĢtırır. Deyimde else bölümü de yoksa, PHP koĢul
sağlanmadığında if komutundan bir sonraki komuta
geçerek programı iĢletmeye devam eder.
<?php $yasi = 10;
if ( $yasi == 10 ) {
echo ("yaĢınız 10 çocuksunuz. ‖);
}
elseif ($yasi == 18 {
echo ("yaĢınız 18. gençsiniz");
}
elseif ($yasi == 35 {
echo ("yaĢınız 35 yolun yarısındasınız");
}
else {
echo ("Bu if blokunda sadece 10,18 ve 35
değerleri kontrol edilmektedir!");
}
?>
if komutundan sonra elseif yada else ifadesi kullanılacak
diye bir zorunluluk yoktur.
if ( $sifre == "" ) { echo ("Parola girmediniz.
Lütfen parola giriniz. ― }
Yukardaki if komutunda sifre değeri boĢ ise program
uyarı verecek boĢ değilse hiç bir Ģey yapmadan bir
sonraki komuta geçerek devam edecektir.
$vize1 = 35;
$final1 = 75;
if ($vize1 >= 60 && $final1 >= 60) {
print ("Geçti!");
}
else {
print ("Kaldı!");
}
if-endif Kullanımı ve PHP ile HTML Kodunu Ayırma
PHP dilinde if kullanımın baĢka bir Ģekilde if-endif
Ģeklindeki kullanımdır. Bu Ģekilde bir kullanımla kod
blokları bibirinden ayrılır. Bu özellikle grup çalıĢmalarında
önemlidir. Çünkü bir kiĢi HTML kodu yazarken diğer PHP
üzerinde çalıĢabilir. AĢağıdaki örneği ―ifendif.php‖ adıyla
kaydedelim ve kodu deneyelim.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN">
<html>
<head>
<title>if endif Form deneme</title>
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-9">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1254">
</head>
<body>
<?
$islem=$_POST[‗islem‘];
$ad=$_POST[‗ad‘];
$soyad=$_POST[‗soyad‘];
if ($islem == 1): ?>
Merhaba <b><? echo ucfirst($ad) . " " . ucfirst($soyad)
?></b>,<br>
Siteye hoĢgeldiniz.
</body>
</html>
<? exit; ?>
<? endif; ?>
<form action="ifendif.php" method="post">
<input type="hidden" name="islem" value="1">
Kendinizi tanıtın lütfen ?
<table>
<tr><td>Adınız:</td><td><input type="text"
name="ad"></td></tr>
<tr> <td>Soyadınız:</td><td><input type="text"
name="soyad"></td></tr>
<tr><td colspan=2><input type="submit"
value="Gönder‖></td></tr>
</table>
</form>
</body>
</html>
Yukarda örnekte görüldüğü gibi aynı php sayfası iĢlem
değiĢkeni tanımsız ise bir form görüntülemekte ve bu
formun submit kısmında ise kod kendini yeniden
çağırmakta. Ancak form kısmında iĢlem değiĢkeni değer
aldığından bu defa karĢılama mesajı görünür. Ancak exit
komutu kullanımına özellikle dikkat edilmelidir. Aksi
takdirde form görüntülenecektir. Buna benzer bir
kullanımı if else ile de sağlamak tabiî ki mümkündür.
Endif
If blokunun sonlandığını göstermektedir. Yukarıdaki
örnekte kullanımı verilmiĢtir.
switch komutu
If komutunun yazılıĢa dikkat ettiyseniz elseif ve else
deyimleri kullanıldığı zaman programın ardı ardına birden
çok kontrole girmesi gerekir. Bu tip iĢlemleri
hızlandırmak için PHP‘de birde switch kontrol bloku
kullanımı getirilmiĢtir. Switch blokundan çıkıĢ için break
(kır) komutu kullanılır. Örnek kodu bir inceleyelim;
<?php
$Name = "Ahmet";
if ($Name == "Ali") {
print "Adınız Ali \n";
} else {
if ($Name == "Veli") {
print "Adınız Veli \n";
} else {
if ($Name == "Ahmet") {
print "Adınız Ahmet \n";
} else {
if ($Name == "Mehmet") {
print "Adınız Mehmet \n";
} else {
print "Adınızı bilmiyorum!\n";
}
}
}
}
?>
Gördüğünüz gibi gerekirse isim değerini tespit için tüm
kontroller yapılmak zorundadır. ĠĢte bunu önlemek için
Switch kullanılırsa hem kodumuz daha okunur hale gelir
hemde kontroller hızlanır.
switch ( değiĢken ) {
case KOġUL-1 ; KoĢul-1 doğru ise yapılacak
iĢlemler
break;
case KOġUL-2 ; KoĢul-2 doğru ise yapılacak
iĢlemler
break;
case KOġUL-3 ; KoĢul-3 doğru ise yapılacak
iĢlemler
break;
case KOġUL-4 ; KoĢul-4 doğru ise yapılacak
iĢlemler
break;
......................
......................
default:
diğer durumların tümünde yapılacak iĢlemler
}
break komutunu kullanmak zorunlu değildir. Ancak break
kullanılmazsa koĢullardan birisi sağlanmıĢ ve iĢletilmiĢ
bile olsa PHP diğer koĢullarıda kontrol etmeye devam
edecek daha da garibi varsa default blokunuda
çalıĢtıracaktır. Bu sadece zaman israfı demek
olduğundan break komutunun kullanılması programımıza
hız kazandıracaktır.
ġimdi ilk örneğimizi yeniden yazalım;
$Name = 'Ahmet;
switch($Name) {
case "Ali": print "Adınız Ali \n"; break;
case "Veli": print "Adınız Veli \n"; break;
case "Ahmet": print "Adınız Ahmet \n"; break;
case "Mehmet": print "Adınız Mehmet \n"; break;
default: print "Adınızı bilmiyorum!\n";
}
switch ( $KDV ) {
case 1 ; echo ("ekmek <br>") ; break;
case 8 ; echo ("Temel gıda <br>") ; break;
case 18 ;echo ("genel ürünler <br>") ; break;
case 25; echo ("lüks tüketim <br>") ;break;
default: echo ("böyle bir KDV oranı
tanımlanmamıĢtır <br>") ;
}
PHP bu kodu yürütürken KDV adlı değiĢkenin değerini
kontrol edecektir. Değeri 1 ise ilk koĢul gerçekleĢecek ve
kodumuz ekrana ―ekmek‖ yazacak ve break ifadesini
gördüğü için switch blokundan komple çıkarak swicth
blokundan sonraki ilk komutla yoluna devam edecektir.
Break komutu olmasaydır. 8,18, ve 25 olma durumlarıda
gereksiz yere kontrol edilecek, daha sonrada hiç alakası
yokken default blokunu çalıĢtırıp ekrana ekrana birde
―böyle bir KDV oranı tanımlanmamıĢtır‖ yazıp öylece
çıkacaktı. Bu bakımdan switch kullanılırken uygun
yerlerde bra komutlarının kullanılması gereklidir
diyebiliriz.
Tek KoĢula Göre Ġki Sonuç - Üçlü Operatör
(Ternary Operatör)
Bir değiĢkenin değerini sadece tek bir koĢul için kontrol
etmek için switch blokunu uzun uzadıya kodlamak
gerekmez. Bu iĢlemi soru ve iki nokta üstüste iĢaretleri
(? ... :) olarak yazılan operatör ile yapabiliriz. Örneğin,
sayfadaki ziyaretçi parolasını girdiyse bir hoĢ geldin
mesajı girmediyse bir uyarı görüntülemek istiyoruz.
$ikaz = ($sifre == "" ) ? "Parolanızı giriniz lütfen" :
"Sayfamıza hoĢgeldiniz " ;
echo ($ikaz);
Burada ikaz değiĢkeninin içeriği sifre değiĢkenine bağlı
olarak atanacaktır. ġifre boĢ ise ilk kısım, değilse
teĢekkür mesajı atanacaktır. Zaten bu operatöre Ternary
denmesinin sebebi üç parametre birden almasıdır. KoĢul,
doğru ise sonuç, yanlıĢ ise sonuç değerleri.
<?php $yasstr = ($yas < 18) ? 'çocuk‟ :
'yetiĢkin‟;
?>

Hiç yorum yok:

Yorum Gönder