Professional Documents
Culture Documents
PHP'de Program Denetimi
PHP'de Program Denetimi
Program Denetimi
Belli bir koula gre programn ileyiinin deitirilmesi ilemini denetim
komutlaryla yaparz.
Programn almas esnasnda birka farkl alternatif durum arasndan seim yapmamz, baz
komutlar birden fazla tekrarlatmamz, mantksal kararlar vermemiz ya da istenmeyen hatalar
nlemek amacyla programmza mdahale etmemiz gerekebilir. Bu gibi durumlar kontrol altna
almak amacyla kontrol yaplarn ve dngleri kullanyoruz. arta bal olarak ilem yapmak iin
if ve switch ifadelerini, dngler iin ise for ve while ifadelerini kullanyoruz. imdi bunlar
srayla ve rneklerle inceleyelim.
if ( koullar )
{
koullar doru ise yaplacak ilere ilikin komutlar
}
else
{
koul salanmamsa yaplacak ilere ilikin komutlar
}
Else, kelime manas olarak deilse manasna gelmektedir. If komutu ile else komutu birlikte
kullanlr. Eer art olumamsa elseden sonraki ilem yrtlr.
imdi if else kullanarak daha nce rendiimiz mantksal AND(&&) parametresini de ieren
bir rnek yapalm.
Yukardaki programda sifre=1453 , uye =Fatih deerini almtr. 4. satrda sifre ve uye deerleri
kontrol edilip her ikisinin de doru olmas durumunda ekrana Doru Giri Yaptnz yazmaktadr.
Programda her iki deer de doru olduu iin giri doru olacaktr.Fakat siz iki ve nc satrdaki
sifreyi veya uye deerini deitirerek Giri Hatal mesaj verdirebilirsiniz.
3.5.2. Else if
kiden fazla koulun olduu durumlarda Else if kullanlr. Eer deilse manasna gelen bu
ikili btn artlar kontrol ettikten sonra kalan son art Else deyip icra eder.
Bu programda ihtiml vardr: Ali byk, Osman byk veya yalar eit. Birinci if deyimi ile
(5.satr) Alinin byk olma durumunu, ikinci if deyimiyle (9.satr) Osmann byk olma durumunu
sorgulattk. kisi de deilse (13. Satr) son ihtimli yazdrdk. Yukardaki program altrld
zaman birinci art deil, ikinci art gerekletii iin ekrana Osman Byk ifadesi yazdrlr.
Sizler de 2. satrda bulunan $Ali_yas deikenine farkl deerler vererek dier iki ihtimale gre
ekran ktsnn deiimini uygulaynz.
imdi rneimizdeki ihtiml saysn artrarak farkl bir rnek daha zelim:
Bu rnekte rencinin ald puana gre ekrana notunu yazdran program yapalm.
Puan-Not tablosu aada verilmitir.
PUAN NOT
0-24 SIFIR
25-44 BR
45-54 K
55-69
70-84 DRT
85-100 BE
Kiinin tuttuu sayy Daha Byk Say veya Daha Kk Say gibi ynlendirme mesajlaryla
bulmaya alan ve tutulan say tahmin edilen sayya eit olduunda da TEBRKLER mesajyla
tahmin edilen sayy ekrana yazdran program yazalm.
Yukardaki rnei, bir sonraki modln konusu olan form yardmyla yaparsanz daha kullanl bir
uygulama olacaktr. Bu rnekte 3.satrdaki tahmin deerine say deerinden dk ve yksek deerler
atayarak programn almasn kontrol edebilirsiniz.
Kare iine alnm iki noktann arasnda bulunan ift trnaklar boluk brakmak amal kullanlmtr.
Bu komutlarn grevlerinin anlalmas belki tanmdan biraz zor olabilir. Ancak rnek
uygulamalarla ne sylemek istenildii anlalacaktr.
Konuyu fazla uzatmamak iin bu komutlar grevleri ile birlikte aada yazp sonra rnek
uygulamaya geelim.
isset() : Bu komut bir deiken tanmnn ierisinde deer olup olmadn rapor
eder.
empty() : Buda isset ile ayn ii grr esasnda. Ancak snamay tersten yapar. isset()te dnen
deer true ise emty() de ayn deer false olarak dner.
Yukardaki rnekte $sifre deikeni tanmlanmam. Dolaysyla byle bir deiken ve ierii de yok.
If komutuyla 5. satrda bu kontrol yaptmzda deer olmad iin ekrana Deikenin deeri
yok. yazd.
Esasen burada yaplan ilem deikenin olup olmad deil, deikenin iinde deer olup
olmaddr.
if(!isset($sifre))==if(empty($sifre))
if(!empty($sifre))==if(isset($sifre))
Siz yukardaki rnekleri empty komutu ve nlem(!) iaretini kullanarak farkl
kombinasyonlarda deneyebilirsiniz.
rnek uygulama:
Yukardaki rnekte iki sayy toplayp ortalamasn aldrdktan sonra ortalamann tamsay olup
olmadn kontrol ettiriyoruz. rneimizde ortalama 17/2=8,5 kyor. Dolaysyla tamsay deil. Bu
nedenle program altnda ekran grnts aadaki gibi olacaktr.
3.5.4. Switch Kullanm
Tre karl anahtar olan switch deyimi if deyimi gibi grev yapar. Switch, seilmi
bir deikenin belli artlardan hangisine uygun olduuna bakp o art iin belirlenmi ilemleri
gerekletirir.
Switch ile yaptklarmzn hepsini if ile yaparz ama if ile yaptmz her eyi switch deyimi ile
yapamayz.
Seim 1 2 3 4 5 6 7
Gnler Pazartesi Sal aramba Perembe Cuma Cumartesi Pazar
Yukardaki tabloda hangi sra numarasn seersek o numaraya karlk gelen gn ekrana
yazdran program yazalm.
Siz $secim deikenine atanan numaray deitirerek) ekranda (2. Satrda) farkl gnlerin
kmasn salayabilirsiniz. Seim aral [1-7] dnda bir say seildiinde byle bir gn olmad
iin default deer olarak YANLI SEM gzkecektir.
rnek: ki farkl deikene atlm saylar seime gre toplama, karma, arpma veya blme
ilemine tabi tutan sonucu ekrana yazdran program yazalm.
Bu ilem olarak arpmay setiimiz (5.satr) iin program 18.satr ile 21. Satr aras alp
sonlanmtr.21.satrda bulunan break komutu switch ten kmay salar.
lkretimde yaptmz gibi defterimize admz 100 kez yazmak, 1den balayarak ikier
ikier 200e kadar yazmak veya 100den geriye doru beer beer yazmak birer basit dng rnekleri
olarak verilebilir.
***Dng says iin balang-biti ve art deerleri nemlidir.1 den 100e kadar olan bir ilemde
art miktar 2 olarak ayarlanrsa dng iindeki komutlar 50 defa altrlacaktr.
Bu programda $i deikeni saya deikenidir. Programn 2.satrnda grdnz gibi $i deeri 1den
balam, kk eit 8 oluncaya kadar deerini birer birer artrmtr.
Her artrma ileminde ise ssl parantez arasndaki komutu altrmtr. Bu ilemi toplam 8
defa yapmtr. Dolaysyla programn almasndan sonraki ekran grnts aadaki gibi olmutur.
rnek: 1den balayarak 10 a kadar ekrana alt alta yazdrmak istiyoruz.
Dng ilemlerinde bir tane saya olmak zorundadr. Bu sayacn grevi her seferinde
dngnn kanc defa ilendiini tutmaktr. Bu rnekte kullanlan $i sayac ayn zamanda
4. Satrda ekrana yazlmaktadr.
rnek: Ekrana 1den balayp sra numaras vererek ekrana 10 defa MERHABA PHP
yazdralm.
1.MERAHABA PHP
2.MERAHABA PHP
.
.
.
.
.
10.MERAHABA PHP gibi
Programn 5. satrnda hem saya hem de metin birletirme operatr kullanlarak dngye girmi
ve ekrana yazlmtr.
Biz dnglerin iine ayn zamanda html etiketlerini de ekleyebilir, onlar dnglerle beraber
kullanarak ok deiik rnekler yapabiliriz.
rnek: Ekrana 900 pix uzunluunda alt alta 10 tane izgiyi dng yardmyla izdirelim.
Yukardaki program altrdmz zaman ekrana alt alta 10 tane 900 pixel geniliinde krmz
renkte izgi izer. Programn alma grnts aadaki gibi olmaktadr.
rnek: stenilen satr ve stun says kadar tablo oluturan ve her bir hcreye top resmi ekleyen
program yaznz.(Top.jpg resmini program altrdnz dizine ekleyiniz, resmin boyutlarn
100x100 pixel olarak ayarlaynz.)
Yukardaki rnekte satr say deerini 4, stun say deerini 3 verelim. Tek tablo oluaca iin 4.
Satrdaki tablo balang etiketi dng dnda kalyor.
Burada i ie iki tane dng kullandk. Dtaki dng satr, iteki dng stun oluturmak iin
kullanlacaktr. nce, dtaki dng ile satr oluturulmakta, daha sonra her satrda ka tane stun
varsa iteki dng yardmyla o kadar stun oluturulmaktadr. Her satrdaki stn oluturma ilemi
bitince dtaki dng devreye girip bir sonraki satr oluturmaktadr. lem bu ekilde satr says
bitinceye kadar devam etmektedir. Dngler bittiinde tablo kapatlmakta ve program
tamamlanmaktadr.
While dngs for dngs ile ayn ilemi yapmaktadr. While Dngs, tanmlanan koul
saland srece dng ierisine yazlan komut ifadesinin veya komut ifadelerinin altrlmasn
salar.
art ifadesinin doruluu her dngnn banda kontrol edilir, buna gre dngnn ierisindeki
komut ifadeleri altrlmaya devam eder ya da dng sona erer. Eer art salanmyorsa dng hi
almaz.
rnek bir program zerinde while dngsn inceleyelim. Daha nce for dngs ile
yaptmz 1 den 10 a kadar olan saylar yazdran program while dngs ile yazalm. Bylece hem
while dngsnn kullanmn hem de iki dng arasndaki farklar grm olacaz.
Yukardaki programda ilk olarak tanmlanan bir "i" deikenine 1 deeri atanmaktadr. While
dngs, "i", 10 dan kk olduu srece alacak ekilde kurulmutur.
Bu programn, dier uygulamalardan farkl olarak sadece numerik(saysal) karakterde deil alfa
numerik(alfabetik) karakterlerde de artrma ve azaltma ilemi yapabildiini grdk.