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.