for ($i = 0; $i < 5; $i++) { ... } bloğu sabit sayıda çalıştırır. Üç kısım şunlardır: başlangıç ($i = 0, bir kez çalışır), koşul ($i < 5, her turdan önce kontrol edilir) ve adım ($i++, her turdan sonra çalışır). Koşul false olur olmaz döngü biter.
$i döngüden sonra da vardır ve koşulu false yapan değeri tutar (6). PHP'de döngü değişkenleri için blok kapsamı yoktur.
Bir dizide indeksle dolaşma
Anahtarları 0, 1, 2 ... olan bir listede sayaç aynı zamanda indeks olur. count() sonucunu önce bir değişkende saklayın ki her turda yeniden çağrılmasın.
İlk kısım virgülle ayrılmış birden çok ifade tutabilir; $n = count($fruits) bu şekilde bir kez atanır. Yalnızca her değere ihtiyacınız varsa (komşularına değil), foreach daha kısadır ve anahtarları 0 ile n - 1 arasında olmayan dizilerde de çalışır.
Geriye sayma ve 1'den büyük adımlar
Adım herhangi bir ifade olabilir: geriye saymak için $i--, her ikinci sayı için $i += 2, ikinin kuvvetleri için $i *= 2.
range('a', 'h') ['a', 'b', ... 'h'] dizisini oluşturur. range(1, 10) ve foreach ile bir for döngüsüyle aynı saymayı elde edersiniz, ama önce dizinin tamamı oluşturulur.
break ve continue
break döngüyü hemen bitirir. continue mevcut turun geri kalanını atlar ve adıma, ardından bir sonraki koşul kontrolüne geçer.
İkinci döngünün koşulu boştur, bu da "her zaman true" demektir, yani break gelene kadar çalışır. İç içe döngülerde break 2 ve continue 2 dış döngüye etki eder, bir sonraki örnekte görüldüğü gibi.
İç içe for döngüleri: çarpım tablosu
Bir döngü içindeki döngü, dış döngünün her turunda iç döngüyü baştan sona çalıştırır. Burada çıktı HTML olduğu için Page sekmesinde gerçek bir tablo görünür.
$size değerini 12 yapın ve tekrar çalıştırın. for (...): ve endfor; biçimi, döngüleri HTML etiketleri arasında okunur tutan alternatif söz dizimidir. Aynı tablo düz metin olarak ve iki döngüyü de durdurmak için break 2 ile:
Sık yapılan hatalar: bir fazla ve sonsuz döngü
İki klasik for hatası: count() ile <= kullanmak sondan bir eleman fazlasını okur, PHP bunu Warning: Undefined array key 3 olarak bildirir ve null kabul eder; sayacı sona doğru hiç ilerletmeyen bir adım ($i++ yerine $i--) ise koşulu sonsuza dek true tutar.
Bir dosyanın sonuna kadar okumak gibi uzunluğunu önceden bilemediğiniz döngüler için bir while döngüsü daha uygundur.
Sıkça Sorulan Sorular
PHP'de bir dizide indeksle nasıl dolaşırım?
Anahtarları 0, 1, 2 olan bir liste için for ($i = 0; $i < count($arr); $i++) { echo $arr[$i]; } kullanın. Çoğu kodda foreach ($arr as $i => $value) daha basittir, aynı indeksi verir ve anahtarlar 0'dan n eksi 1'e kadar değilse de çalışır.
PHP'de bir for döngüsünden nasıl çıkarım?
break; döngüden hemen çıkar. İç içe döngülerde break 2; iç döngüden ve onu saran döngüden çıkar. continue; mevcut turun geri kalanını atlar ve bir sonrakine geçer.
PHP'de for döngüsüyle nasıl geriye sayarım?
Yüksekten başlayın, >= ile karşılaştırın ve azaltın: for ($i = 10; $i >= 1; $i--) { echo $i; }. Birden farklı adımlar için üçüncü kısmı değiştirin, örneğin $i += 2 veya $i -= 5.
PHP'de foreach yerine ne zaman for kullanmalıyım?
Bir şey saydığınızda (5 kez tekrarla, 1'den 100'e kadar sayılar, her ikinci eleman) ya da indeksle bir sonraki veya önceki elemana ihtiyaç duyduğunuzda for kullanın. Bir dizinin her elemanını ziyaret etmek için, özellikle sayısal indeksi olmayan ilişkisel dizilerde foreach kullanın.