MultiServis.Net //PHP El Kitabı

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

Dongu ve Diziler - BOLUM 3 Yazar: Serkan Tarih: 01/03/02

"For" Donguleri(for loops)

For donguleri belirli bir kod parcasinin sizin istediginiz sayi kadar tekrar edilmesini saglar.Bir baska deyisle sizin istediginiz sayi kadar, dongunun "iteration" yani iterasyon islemine tabii tutulmasini saglar.

for (Sayaci Kur ; Sayaci Test Et ; Sayaca Ekle Veya Sayactan Cikart)

{

Bu parantezin icerisindeki kod grubunu uygula

}

Yukarida sozu gecen "Sayac" kavrami ile dongunun kac kez calistigini hesapliyoruz.Bu "sayac" ile ayni zamanda eger belirledigimiz sayi kadar cevrim gerceklesmis ise dongumuze son veriyoruz.

Aslinda "for" dongusu kurmak sartimiz icerisinde tanimladigimiz bu uc ogenin ucunude kullanmak zorunda degiliz.Bizler PHP ogrenmeye yeni basladigimiz icin orneklerimizde bu uc ogeyide kullanacagiz.

Eger bir satirda kendi ismimizi 10 defa yazdirmak istersek simdiye kadar ogrendigimiz bilgilerle bunu nasil yapariz?

$Sayac = 0
while ($Sayac<10)
{
echo "Benim adim Serkan !";
$Sayac =$Sayac+1

}

Yukaridaki dongunun kac defa calistigini tahmin edebilirimisiniz?Sizce dongu 9 defa mi calisti?Cunku 10'a gelmeden dongu durdumu?Acaba 11 kez mi calisti cunku biz $Sayac'i 0 dan baslattik ?

Evet 10 defa calismasini istedigimiz bir dongu icin cok fazla soru degil mi?Aslinda yukaridaki dongu tam olarak 10 defa calisir.

Iste bu tip sorunlari ortadan kaldirmak icin en guzel yontem "For" donguleri kullanmaktir.

Simdi ayni islemi birde "for" dongusu kullanarak deneyelim,

for ($Sayac =1 ; $Sayac<=10; $Sayac++)
{
echo "Benim adim Serkan!";
}

Gordugunuz gibi dongunun kac defa calisacagi konusunda bir endise duymaniza gerek yok.Hepsi sizin icin $Sayac ile veriginiz sayi kadar isletilecek.

Bu dongu yapisini kullanirken ornek olarak sayacin kendisinide ekrana yazdirabilirdik,

for ($Sayac =1 ; $Sayac<=10; $Sayac++)
{
echo $Sayac;
}

Ciktimiz soyle bir sey olacakti.12345678910

Not :Burada kullanilan "$Sayac++" ifadesi "$Sayac = $Sayac + 1" ifadesi ile aynidir.Yanlizca bir kisayol olarak bu notasyon kullanilmistir.

Simdi de bir uygulama yapalim.

1.Text editorunuzu acin ve asagidakileri yazin.

<HTML>
<HEAD></HEAD>
<BODY>
<FORM METHOD=POST ACTION="dinamik.php">
Kac tane cocugunuz var?
<INPUT NAME="Sayi" TYPE="TEXT">
<BR>
<BR>
<INPUT TYPE=SUBMIT>
<BR>
</FORM>
</BODY>
</HTML>

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

3.Yeni bir text dosyaysi acip asagidakileri yazin.

<HTML>
<HEAD></HEAD>
<BODY>
<FORM METHOD=GET ACTION="dinamik2.php">
<?php
for ($Sayac=0 ; $Sayac<$Sayi ; $Sayac++)
{
$Oteleme = $Sayac + 1;
echo "<BR><BR>Lutfen $Oteleme numarali cocugun adini giriniz : <BR>";
echo "<INPUT NAME=Cocuk [] TYPE=TEXT";
}

if ($Sayac==0) echo"Lutfen bir tusa basarak devam ediniz";
?>
<BR>
<BR>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>

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

5.Yeni bir text dosyasi acip asagidakileri yazin.

<HTML>
<HEAD></HEAD>
<BODY>
<?php
$Sayac=0;
echo "Cocuklarinizin isimleri :";
do
{
echo "<BR><BR>$Cocuk[$Sayac]";
$Kontrol = "$Cocuk[$Sayac]";
$Sayac = $Sayac + 1;
} while ($Kontrol != "");
if ($Sayac == 1) echo "Cocuk sayisi olarak sifir girdiniz program sonlaniyor";
?>
</BODY>
</HTML>

6.Bu dosyayi "dinamik2.php" olaraak kayit edin.

7."dinamik.html" dosyasini acip bir kac kez programi farkli degerler vererek deneyin

Ornek Dosyalar

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

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

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

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