Php' de döngü komutları,
- for
- while
- do-while
- foreach
komutlarıdır.
Neden Döngü Kullanırız?
Bir koşula bağlı olarak bir kod bloğunu koşul gerçekleştiği sürece çalıştırabiliriz.
Örneğin en basitiyle ekrana 1-10' a kadar sayıları yazdırmak istiyoruz. Bunu döngüye ihtiyaç duymadan echo komutuyla yapabiliriz.
echo "1" ."<br>"; echo "2" ."<br>"; ... echo "8" ."<br>"; echo "9" ."<br>"; echo "10" ."<br>";
Ancak 10 yerine 1.000 ' e kadar yazdırmak istediğimizde işler zorlaşır. Bu durumda bir koşula bağlı olarak bir kod bloğunu 1000 kere çalıştırmamız gerekir.
for($i = 1; $i <= 1000; $i += 1) { echo $i."<br>"; }
Bu durumda sadece 3 satır kod ile alt alta 1000 tane satır yazdırabiliriz.
Php For Döngüsü
For döngüsünün kullanım şekli;
for (bölüm 1; bölüm 2; bölüm 3) { // tekrarlanacak kod bloğu }
bölüm 1: Kontrol değişkeninin tanımlandığı kısımdır. Döngü başladığında sadece bir kez işletilir.
bölüm 2: Koşulun tanımlandığı kısımdır. Koşul true getirdiği sürece döngü bloğundaki kodlar işletilir.
bölüm 3: Kod blokları her işletildikten sonra koşul durumuna bakılmadan bu kısım işletilir. Dolayısıyla koşulun false üretme olasılığı olur aksi halde sonsuz döngü olacağından uygulama hata verir.
for($i = 1; $i <= 10; $i++) { echo $i."<br>"; }
Örneğimizde 1-10 arasındaki sayıları yazdırmak istiyoruz. Bölüm 1' de "i" değişkeni tanımlayıp 1 değerinden başlatalım ve i değerinin 10 dan (i<=10) küçük ya da eşit olup olmadığını bölüm 2 de kontrol edelim.
Eğer koşul true getiriyorsa bu durumda kod bloklarını işletip i değerini ekrana yazalım. Kod blokları her işletildikten sonra bölüm 3 işletilir ve i değeri 1 arttırılır aksi halde sonsuz döngüye gireriz çünkü döngü başında 1 değerine sahip olan i değeri her zaman 10' dan küçük olur.
Php Dizinin For ile Kullanılması
Dizi elemanlarına tek tek indeks değerleri ile ulaşabiliriz ancak dizi çok fazla eleman içerdiğinde bu oldukça zor olur dolayısıyla dizi elemanlarına döngü ile ulaşmak işimizi kolaylaştırır.
$markalar = ["mazda","opel","bmw","toyota"]; for ($i = 0; $i < count($markalar); $i++) { echo $markalar[$i]; }
$markalar dizisindeki tüm elemanları kolaylıkla ekrana yazdırabiliriz.
count($markalar) bize dizinin kaç eleman içerdiğini getirir. Dolayısıyla dizi eleman sayısı değiştiğinde de döngü çalışmaya devam eder.
$ogrenciler = array("ali","ayşe","ahmet","deniz","mehmet"); for($i = 0; $i < count($ogrenciler); $i+=1) { echo $ogrenciler[$i]."<br>"; }
Ekran çıktısı:
ali
ayşe
ahmet
deniz
mehmet
$urunler = array( "100" => array( "urun_adi" => "iphone 14", "fiyat" => 30000 ), "101" => array( "urun_adi" => "iphone 15", "fiyat" => 40000 ), "102" => array( "urun_adi" => "iphone 16", "fiyat" => 50000 ), ); $keys = array_keys($urunler); for($i=0; $i<count($urunler); $i++) { echo $urunler[$keys[$i]]["urun_adi"]. " "; echo $urunler[$keys[$i]]["fiyat"]; echo "<br>"; }
Ekran çıktısı:
iphone 14 30000
iphone 15 40000
iphone 16 50000
array_keys($urunler) ile bize dizi içerisindeki 100, 101, 102 bilgisi dizi şeklinde gelir ve sırayla gelen key bilgisine göre urunler dizisindeki key' e karşılık gelen value bilgisilerini alabiliriz.
gelen key' e göre value aslında aşağıdaki gibi okunur.
$urunler["100"]["urun_adi"];
$urunler["100"]["fiyat"];