MultiServis.Net //PHP El Kitabı

<<= Önceki Sayfa | PHP Ana Sayfa | Sonraki Sayfa =>>

IF Yapisi - BOLUM 2 Yazar: Serkan Tarih: 01/03/02

== ve === Operatorlerinin Kullanimi

"=" (esittir) operatorunu simdiye kadar olan konularda cok fazla kullandik.Su anda gordugunuz "==" operatoru (iki tane esittir isareti) bundan biraz farklidir.

Aciklamak istersek "=" isareti "atama yapmak icin " icin "==" isareti ise "esitligi kontrol etmek" icin kullanilir.

Ornek vermek gerekirse,

$SansliNumara = 3;
$SansliNumara = 5;

seklindeki kullanimlar degiskenimize bir deger atamak icin kullanilmaktadir.Yukaridaki ornekte $SansliNumara degiskenine "5" degerini atadik.Bir onceki satirda $SansliNumara =3; un hukmunu tamamen ortafdan kadirdik.Bir sonraki satirda $SansliNumara =6; diye yazmis olsaydik artik degiskenimiz icinde "5" degeri silinip bu sefer "6" degeri yazilacakti.Gordugunuz gibi degiskenlere istedigimiz degerleri "=" isareti ile atiyoruz.

== operatorunun kullanilmasi

Bir ifadenin iceriginin karsilastirilmasi icin kullanilir.Ornek vermek gerekirse,

if ($SansliNumara == 7) echo ("Sansli numaraniz yedi rakami");

gordugunuz gibi yukaridaki kod satirinda $SansliNumara degiskeni icerisindeki ifade ile "==" operatorunun sagindaki ifade "esitlik" bakimindan karsilastirilmaktadir.Yukaridaki kod icerisinde kesinlikle $SansliNumara degiskeni icerisine "7" degeri atanmamaktadir.Yanlizca bir kontrol yapilmaktadir.$SansliNumara degiskeni icerisinde saklanan deger ile "7" rakami arasindaki iliski kontrol ediliyor.Burada asla $SansliNumara degiskeni icerisndeki veri degistirilmiyor.

Eger bu konuyu anlamadiysaniz lutfen simdi bir mail atin sceylani@usa.net

(Bu konu cok onemlidir.Eger simdi cozumlemez iseniz ileride cok daha buyuk sorunlar cikaracaktir.)

=== operatorunun kullanilmasi

PHP 4.0.1 ile gelen bu operator karsilastirilan degiskenlerin hem icerik hemde veri tipi ayni ise "dogru" degerini dondurur.Ornek vermek istersek,

if ($SansliNumara === $RastgeleNumara) echo ("Sansli numaraniz rastgele numaraya hem sayi olarak hemde veri tipi olarak esit")

!= ve <> operatorlerinin kullanimi

"==" operatorunun tam tersi olan "!=" operatoru "esit degil" operatoru olarak adlandirilir.

Bir ornek vermek istersek,

if ($SansliNumara != 7 ) echo ("Sansli numaraniz kesinlikle Yedi rakami olamaz.");

Bu tek satir kodumuzda $SansliNumara degiskeninde tutugumuz deger ile "7" rakamini karsilastirdik.Ve dedik ki eger $SansliNumara esit degilse 7 rakamina satirin gerisini uygula.ve echo komutuyla bilgiyi ekrana yazdir.

Kullanimi cok kolay olan bu operatorun bir baska yazim seklide "buyuktur" ve "kucuktur" isaretlerinin beraber yan yana yazilmasidir.

Ornek vermek istersek,

if ($SansliNumara <> 7 ) echo ("Sansli numaraniz kesinlikle Yedi rakami olamaz.");

Hangisini kullanacaginiz tamamen sizin keyfinize kalmistir.Sonucta iki yazim seklide ayni seylerdir.Aralarinda hic bir fark yoktur.

Bir tek sey cok onemli bu konuda o da mantiksal olarak bir seyi cok iyi kavramaniz.Yukaridaki ornege gore anlatirsam,yukaridaki kod satirindaki "if" ifadeleri yanlizca $SansliNumara icinde saklanan degisken "7" rakamina esit oldugunda "false" yani "yanlis" degerini dondurur.

Ornek Uygulama:

1.Text editorunuzu acin ve asagidaki kodlari yazin.

<HTML>
<HEAD></HEAD>
<BODY>
<FORM METHOD=GET ACTION="quiz.php">

Turkiye'nin baskenti asagidakilerden hangisidir?

<BR>
<BR>

<INPUT NAME="Cevap1" TYPE="Radio" VALUE="Istanbul">
Istanbul

<BR>
<BR>

<INPUT NAME="Cevap1" TYPE="Radio" VALUE="Ankara">
Ankara (nin tasina bak ...)

<BR>
<BR>

<INPUT NAME="Cevap1" TYPE="Radio" VALUE="Izmir">
Izmir

<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>

2.Bu dosyayi "quiz.html" olarak kayit edin.

3.Yeni bir text dosyasi acarak asagidaki kodlari yazin.

<HTML>
<HEAD></HEAD>

<BODY>
<?php

if ($Cevap1 == "Ankara" ) echo "Tebrikler dogru cevap verdiniz.";
if ($Cevap1 != "Ankara" ) echo "Uzgunum,yanlis cevap verdiniz. ";

?>
</BODY>
</HTML>

4.Bu dosyayi "quiz.php" olarak kayit edin.

5."quiz.html dosyasini acip cevap verdiginiz takktirde sonucu bir sonraki ekranda goreceksiniz.Sakin hata yapamayin haaa Turkiyenin baskenti Istanbuldur :))

Ornek Dosyalar

http://www.turk-php.com/ornekler/quiz.html

http://www.turk-php.com/ornekler/quiz.php

Mantiksal Operatorler (AND , OR ve , NOT kullanimi)

Mantiksal operatorler kullanim olarak sandiginizdan daha kolaydir.Bu kadar korku ile bakmayin onlara lutfen.Hem sizin program icindeki gucunuzu ortaya cikarir,daha guclu karar verme yapilari kurmanizi saglar.Mantiksal olarak kurdugunuz cumlelerden farki yoktur.

Ilk ornegimizi verelim,

"Bugun gunlerden pazar ve hava gunesli ise plaja gidecegim" cumlesininPHP dilinde karsiligi soyledir.

If ($Gun == "Pazar" AND $HavaDurumu == "Gunesli") echo ("Plaja Gidelim");

"AND" ifadesi yazmak yerine "&&" (Cift Ampersand) yazmak ayni seylerdir.

If ($Gun == "Pazar" && $HavaDurumu == "Gunesli") echo ("Plaja Gidelim");

Simdide OR ve NOT ifadelerinin kullanimina bakalim.

Yukaridaki cumlenin tersini bu operatorler yardimiyla yazalim.

If ($Gun == "Pazartesi" OR $HavaDurumu == "Yagmurlu") echo ("Plaja Bugun Gitmeyelim...");

"OR" ifadesi yazmak yerine "||" (Double isareti) yazmak ayni seylerdir.

(Benim klavyemde shift+Backspace'in bir altindaki tus.Veya buradan kesip yapistirabilrsiniz.)

If ($Gun == "Pazartesi" || $HavaDurumu == "Yagmurlu") echo ("Plaja Bugun Gitmeyelim...");

Son olarak tartisacagimiz operator yanlizca bir formu bulunan bir operator.Yukaridaki orneklerde oldugu gibi "NOT" operatorunu yazi olarak programlariniz icinde kullanamazsiniz.

"NOT" operatoru aslinda bir unlem isaretinden baska bir sey degildir.Tek ozelligi parantezin icindeki ifade disariya ciktiginda onu mantiksal olarak ters cevirmektir.Yani eger parantezin icinde donen sonuc disariya "true" yani "dogru" olarak cikmis ise bu operator onu "false" yani "yanlis" sekline donusturur.

Bir ornek vermek istersek,

if ! ($Gun == "Pazar") echo ("Plaja GITMEYELIM");

Simdi goruldugu gibi biz pazar gunu plaja gitmek istiyoruz ve bununla ilgili program yaziyoruz.Parentezin icerisinde $Gun degiskenimiz var oyle degilmi? Simdi kontrol ediyoruz eger $Gun degiskeni "Pazar"'a esitse parantezin ici "true" yani "dogru" oluyor.Fakat parantezin onunde bir "!" unlem var.Bu unlem parantezin icinde olusan islemin sonucunu 180 derce degistiryor."Dogru" ise "Yanlis" , "Yanlis" ise "Dogru" yapiyor.

Yukaridaki kod parcasi icin uygulamali ornek yapacak olursak,

Gunlerden cumartesi kabul edelim.Dolayisi ile $Gun degiskenimiz icerisinde "Cumartesi" degeri saklanacaktir.Simdi formulde yerine koyalim,(Tabiiki boyle program icinde biz koymayacagiz degeri biz eger $Gun degiskeninin degerini "Cumartesi" yapmak istiyorsak $Gun = "Cumartesi"; dememiz yeterli.Biz simdi kendimizi PHP nin yerine koyup nasil davrandigina bakiyoruz)

if ! (Cumartesi == Pazar) echo ("Plaja GITMEYELIM);

simdi parantezin ici gordugunuz gibi "false" yani "yanlis",Fakat parentezin onundeki iste bu unlem isareti onu bir anda "true" yani "dogru" yapiyor ve satirin geri kalani dogal olarak okunuyor.Eger gunlerden "Pazar" olsaydi parantezin ici "true" yani "dogru" olacakti fakat onunde unlem oldugu icin deger bir anda "false" yani "yanlis" haline donecekti sonra ne olacak tabiiki IF deyiminden ogrendigimiz kural calisacak ve satirin geri kalani yani "Plaja GITMEYELIM" yazisi hic bir zaman goruntulenmeyecekti.

Sonucta Pazar gunu icin programin "Plaja GITMEYELIM" yazisi goruntulenmez.

Bir baska ornek verelim bu operatorun kullanimina hem bilgileriniz pekisir,hemde programcilik mantiginiz :

if ! ($Cevap) echo ("Hic bir cevap yok...");

Yukaridaki kod'da bilgisayar yanlizca $Cevap degiskenine bir deger atanmamis ise ekrana bu uyari bilgisini basar.
Aciklayalim ,

$Cevap degiskeni icinde bir deger atadik diyelim,

$Cevap = 3;

simdi IF satirimiza bakacak olursak,

if ! ($Cevap) echo ("Hic bir cevap yok...");

Parentezin icinde degiskenimiz var.$Cevap degiskeni eger icinde bir veri saklaniyorsa dogal olarak "true" yani "dogru" degeri doner.Fakat unlem isaretimiz onu "false" yapar ve satirin geri kalani PHP tarafindan okunmaz.(Uyari yazisi ekrana basilmaz)

Parentezin icinde degiskenimiz var.$Cevap degiskeni eger icinde bir veri saklanmiyorsa> dogal olarak "false" yani "yanlis" degeri doner.Fakat unlem isaretimiz onu "true" yapar ve satirin geri kalani PHP tarafindan okunur.(Uyari yazisi ekrana basilir)

Mantiksal Operatorler Konusunda Uygulamali Ornek

1.Text editorunuzu acip asagidaki kodlari yazin.

<HTML>
<HEAD></HEAD>
<BODY>
Seres Araba Kiralama Sirketi Online Basvuru Formu
<FORM METHOD=POST ACTION="araba.php">
Adiniz:
<INPUT NAME="Isim" TYPE="Text">
Soyadiniz:
<INPUT NAME="Soyad" TYPE="Text">
Yasiniz:
<INPUT NAME="Yas" TYPE="Text" Size="3">
<BR>
<BR>
Adresiniz :
<TEXTAREA NAME="Adres" ROWS=4 COLS=40>
</TEXTAREA>
<BR>
<BR>
Ehliyetiniz varmi?
<INPUT NAME="Ehliyet" TYPE="Checkbox">
<BR>
<BR>

<INPUT TYPE=SUBMIT VALUE="Gonder">
</FORM>
</BODY>
</HTML>

2.Bu dosyayi "araba.html" olrak kayit edin.

3.Baska bir text dosyaysi acip asagidski kodlari yazin.

<HTML>
<HEAD></HEAD>
<BODY>
Seres Otomobil Kiralama Sirketi Sonuc Sayfasi

<?php
if ($Yas >20 AND $Ehliyet == "on") echo ("Araba kiralama isteginiz KABUL edilmistir.");
if ($Yas <21 OR $Ehliyet == "") echo ("Araba kiralama isteginiz RED edilmistir.");
?>

</BODY>
</HTML>

4.Bu dosyayi "araba.php" olarak kayit edin.

5."araba.html"dosyasini acip formu doldurun.Degisik veriler icin deneyin.

NOT : Burada verdigimiz "checkbox" kontrolu icin "on" degeri kullandiginiz browser IE,Netscape ve opera icin sorunsuz calisacaktir.Eger degisik browserlar icin program uretiyorsaniz her zaman icin "checkbox" kontrolunun value ozelligini kullanarak bu degeri kontrol edebilirsniz.Bu uc browser da eger checkbox isaretlenmisse otomatik olarak "on" degerini kontrole uygularlar.

Ornek Dosyalar

http://www.turk-php.com/ornekler/araba.html

http://www.turk-php.com/ornekler/araba.php

>= ve <= Operatorlerinin Kullanilmasi

Bu operatorler "buyuk" ,"kucuk" ve "esit operatorlerinin kombinasyonudur.Kullanimi bu operatorlerin kullanimi ile aynidir.
">=" ifadesinin mantiksal anlami "Buyuk Esit"'tir
"<=" ifadesinin mantiksal anlami "Kucuk Esit"'tir.

Ornek vermek istersek,

if ($Yas >=21 AND $Ehliyet="on") echo ("Araba kiralama isteginiz KABUL edilmistir.");

seklindedir.Yani yasin 21 ve buyuk oldugu haller goz onune alinmistir.Eger yanlizca >21 kullanirsaniz 21 sayisi sorgumuzun icine alinmaz.

Operatorlerin Beraber Kullanilmasi

Kac tane operator'un birbiriyle ic ice kullanilacagi konusunda bir sinirlama yoktur.Istediginiz mantiksal ifade icin dilediginiz kadar cok operatoru yan yana veya ic ice kullanbilirsiniz.

Bir Ornek vermek istersek,

if ( ($Gun != "Pazartesi")
OR ($Gun != "Sali")
OR ($Gun != "Carsamba")
OR ($Gun != "Persembe")
OR ($Gun != "Cuma")
OR ($Gun != "Cumartesi")
OR ($HavaDurumu != "Yagmurlu") ) echo ("Plaja Gidebiliriz Demektir...");

Burada eger gunlerden "Pazartesi,Sali,Carsamba,Persembe,Cuma,Cumartesi" degilse ve hava "Yagmurlu" degilse "Plaja Gidebiliriz".

Daha karmasik bir ornek yapalim,

if (($Gun == "Pazartesi" AND $Ay != "Mart")
OR ($Gun == "Sali" AND $Saat != "12")
OR ! ($Ay != "Ekim") echo ("Toplantiyi yapabiliriz"));

Burada ,eger gunlerden Pazartesi ve ayimiz Mart degilse,veya gunlerden Sali ve Saatimiz "12.00" degilse veya ayimiz Ekim degilse "Toplanti yapabilirz"

Simdi daha buyuk ve gelismis kararlari verebilcek bir uygulama yazalim.

1.Text editorunuzu acip asagidaki kodlari yazin.

<HTML>
<HEAD></HEAD>
<BODY>
Seres Otomobil Web Sayfasi
<BR>
<BR>

<FORM METHOD=POST ACTION="karar.php">
Lutfen yasinizi girin :
<INPUT TYPE=TEXT NAME="Yas" SIZE=3>
<BR>
<BR>
Arabanizin max hizi nedir?
<INPUT TYPE=TEXT NAME="Hiz">
<BR>
<BR>
Yaklasik olarak arabanizin degeri ne kadar?
<SELECT NAME="Deger">
<OPTION VALUE=5000>$5000'dan AZ </OPTION>
<OPTION VALUE=7000>$5000-7000 ARASI</OPTION>
<OPTION VALUE=10000>$7000-10000 ARASI</OPTION>
<OPTION VALUE=25000>$10000'den FAZLA</OPTION>

</SELECT>

<BR>
<BR>

Arabanizin motor hacmi ne kadar?
<SELECT NAME="MotorHacmi">
<OPTION VALUE=1.0>1.0L</OPTION>
<OPTION VALUE=1.3>1.3L</OPTION>
<OPTION VALUE=1.5>1.5L</OPTION>
<OPTION VALUE=2.0>2.0L</OPTION>

</SELECT>
<BR>
<BR>
<INPUT TYPE=SUBMIT VALUE="Bilgileri Gonder">
</FORM>
</BODY>
</HTML>

Onemli Not : Form'da girdiginiz kontrollerin isimlerine ozen gostermelisiniz.Bu formda "NAME" ozelligi ile girilen isimler,bir sonraki PHP sayfasina islenmek icin gonderildiginde kontrollerin isimleriyle anilan degiskenler otomatik olarak yaratilacak ve kullanicin buraya girdigi veriler bu degiskenlere otomatik olarak atanacaktir.

2.Bu dosyayi "karar.html" olarak kayit edin.

3.Bir baska text dosyasi acarak asagidaki kodlari girin.

<HTML>
<HEAD></HEAD>
<BODY>
Seres Otomobil Sonuc Sayfasi
<?php

if ($Yas<25 OR $Hiz>100 OR $Deger>10000 OR $MotorHacmi>1.5)
{
echo ("Size 1500 dolarlik sigorta plani sunulabilir");

}

if ($Yas >= 65 AND ($Deger<=5000 OR $Hiz<=80) AND $Deger<=10000 AND $MotorHacmi <=1.5 AND $Hiz<=100)
{
echo ("Size 800 dolarlik indirimli sigorta plani sunulabilir");

}

if (($Yas<65 OR $Deger>5000 AND $Hiz>80) AND $Yas>=25 AND $Hiz<=100 AND $Deger<=10000 AND $MotorHacmi<1.5)
{
echo ("Size 1000 dolarlik bir sigorta plani sunulabilir");

}

?>

</BODY>
</HTML>

4.Bu dosyayi "karar.php" olarak kayit edin.

5."karar.html" dosyasini browser yardimiyla acin.

6.Bir kac ornek veri girip sonuclari deneyin.

Ornek uygulama nasil calisiyor

PHP icerisinde bu karmasik yapidan kurtaracak bir cok kisayol olmasina ragmen biz uygulamayi bu sekilde yazdik.Size mantiksal operatorlerin nasil calistigini gostermek icin bunu yaptik.
4 kosul sigorta odemesi icin test ediliyor.Bunlar $Yas $Hiz $MotorHacmi ve $Deger.Degisik kosullardaki musteriler icin online web sayfasinsda degisik planlari PHP yardimiyla insanlara ulastirabiliyoruz.Iste dinamik web sayfasi tasarlamak olayi bundan baska bir sey degil...

Ornek Dosyalar

http://www.turk-php.com/ornekler/karar.html

http://www.turk-php.com/ornekler/karar.php

Lutfen soru ve onerileriniz icin mail atin

<<= Önceki Sayfa | PHP Ana Sayfa | Sonraki Sayfa =>>