== 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
|