PHP ile döngüler for, foreach, do, while

PHP’de döngüler, belli bir kod bloğunun belli bir koşul sağlandığı sürece tekrar edilmesini sağlar. PHP’de döngüleri yönetmek için for, foreach, while, do...while gibi farklı döngü yapıları kullanılır. Bu yazımızda sırasıyla PHP’de kullanılan döngüleri inceleyeceğiz, kullanım örneklerine bakacağız.

PHP’de for döngüsü

PHP’de for döngüsü, belli bir koşula göre belirli bir sayıda döngü döndürmek için kullanılır. Örneğin, bir dizinin elemanlarını tek tek yazdırmak için kullanılabilir. Aşağıda bir örnek gösterilmiştir:

$numbers = array(1, 2, 3, 4, 5);

for ($i = 0; $i < count($numbers); $i++) {
  echo $numbers[$i];
}

Bu örnekte, for döngüsünün ilk bölümünde $i değişkeninin başlangıç değeri 0 olarak ayarlanır. İkinci bölümde ise, döngünün koşulu belirlenir: $i değişkeninin $numbers dizisinin eleman sayısından küçük olması gerektiği belirtilir. Döngü içerisinde ise, her seferinde $i  değişkeninin değeri 1 artırılır ve $numbers  dizisinin $i  indisli elemanı ekrana yazdırılır. Bu sayede, döngü dizinin tüm elemanlarını tek tek yazdıracaktır.

PHP’de foreach döngüsü

PHP’de foreach döngüsü, bir dizinin tüm elemanlarını tek tek gezmek için kullanılır. Örneğin, bir dizinin tüm elemanlarını ekrana yazdırmak için kullanılabilir:

$numbers = array(1, 2, 3, 4, 5);

foreach ($numbers as $number) {
  echo $number;
}

Bu örnekte, foreach döngüsü $numbers dizisinin tüm elemanlarını tek tek gezer ve her seferinde döngü içerisinde o elemanın değerini $number değişkenine atar. Döngü içerisinde, $number değişkeninin değeri ekrana yazdırılır. Böylece, döngü tüm dizinin elemanlarını tek tek yazdıracaktır.

PHP’de while döngüsü

PHP’de  while  döngüsü, belli bir koşul sağlandığı sürece kod bloğunu tekrar eden bir döngü türüdür. Örneğin, bir sayının karesinin toplamını hesaplamak için kullanılabilir:

$i = 1;
$sum = 0;

while ($i <= 10) {
  $sum += $i * $i;
  $i++;
}

echo $sum; // 385

Bu örnekte, while  döngüsünün koşulu $i değişkeninin 10’dan küçük veya eşit olmasıdır. Bu koşul sağlandığı sürece, döngü içerisindeki kod bloğu çalıştırılır. Kod bloğu içerisinde, $sum  değişkenine $i değişkeninin karesi eklenir ve $i değişkeninin değeri 1 artırılır. Bu sayede, while  döngüsü 10 kez dönecek ve döngü sonlandığında $sum değişkeninin değeri 1’den 10’a kadar olan sayıların karelerinin toplamı olan 385 olacaktır.

PHP’de do…while döngüsü

PHP’de do...while döngüsü, belli bir koşul sağlandığı sürece kod bloğunu tekrar eden bir döngü türüdür. Ancak, while döngüsüne göre do...while döngüsünde kod bloğu en az bir kez çalıştırılır, daha sonra koşul kontrol edilir. Örneğin, bir sayının karesini bulmak için kullanılabilir:

$number = 5;

do {
  $number *= $number;
} while ($number < 1000);

echo $number; // 625

Bu örnekte, do...while döngüsü ilk olarak kod bloğunu çalıştırır ve $number değişkeninin karesini bulur (25). Daha sonra koşul kontrol edilir ve koşul sağlanmadığı için döngü sonlanır. Böylece, döngü sadece bir kez çalışmış olur ve $number değişkeninin değeri 25 olmuş olur. do...while döngüsünün avantajı, kod bloğunun en az bir kez çalıştırılmasını sağlamasıdır.

do...while döngüsü ile ilgili bir örnek daha vermek istiyorum. Örneğin bir inputtan fotoğraf bize upload ediliyor. Ancak biz bu fotoğrafın uzunluğunun ya da genişliğinin 2000px üstündeyse %50 azaltılmasını ve o şekilde kaydedilmesini istiyoruz. Bunu yapacak bir fonksiyon yazmamız lazım ancak şöyle bir durum var, eğer ilk %50 düşürmeden hala 2000px altına inmediyse? İşte burada do...while döngüsü bize yardımcı olacak. Sonucumuz 2000px altına düşene kadar do...while döngüsünde tutacağız. Gelin örneğimizi kodlayalım.

function resize_image_percent($uzunluk, $genislik) {
  do {
    if ($uzunluk > 2000 || $genislik > 2000) {
      $uzunluk = $uzunluk * 0.5;
      $genislik = $genislik * 0.5;
    }
  } while ($uzunluk > 2000 || $genislik > 2000);

  return array($uzunluk, $genislik);
}

 

Bu ve benzeri önemli ipuçlarını öğrenmek için diğer yazılarıma da göz atabilirsiniz.

Web sitesine mi ihtiyacınız var ?

Kategori: