PHP'de döngüler. PHP'de foreach while for döngüleri

  • 20.06.2020

Son güncelleme: 1.11.2015

PHP, diğer programlama dilleri gibi, tekrar eden eylemleri gerçekleştirmek için döngüler kullanır. PHP aşağıdaki döngü türlerine sahiptir:

döngü için

for döngüsü aşağıdaki resmi tanıma sahiptir:

([sayaç başlatma]; [koşul]; [sayaç değişikliği]) ( // işlemler ) için

Döngü için bir standart düşünün:

"; } ?>

Döngü bildiriminin ilk kısmı - $i = 1 - sayacı - $i değişkenini oluşturur ve başlatır. Ve döngü yürütülmeden önce değeri 1'e eşit olacaktır. Temelde bu, bir değişken bildirmekle aynıdır.

İkinci kısım, döngünün yürütüleceği koşuldur. Bu durumda, döngü $i 10'a ulaşana kadar devam edecektir.

Üçüncü kısım, sayacı birer birer artırmaktır. Yine, birer birer artırmamıza gerek yok. Şunları azaltabilirsiniz: $i--.

Sonuç olarak döngü bloğu, $i değeri 10 olana kadar 9 kez çalışacak ve her seferinde bu değer 1 artacaktır. Döngünün her bir ayrı tekrarı iterasyon olarak adlandırılır. Böylece bu durumda 9 iterasyon oluşacaktır.

döngü sırasında

While döngüsü, bir koşulun doğruluğunu kontrol eder ve koşul doğruysa, döngü ifade bloğu yürütülür:

"; $sayaç++; ) ?>

while bloğunda yalnızca bir ifade varsa, bloğun süslü parantezleri atlanabilir:

"; ?>

do..while döngüsü

do..while döngüsü, while döngüsüne benzer, ancak şimdi döngü bloğu yürütülür ve ancak o zaman koşul kontrol edilir. Yani, koşul yanlış olsa bile döngü bloğu en az bir kez yürütülür:

"; $counter++; ) while($counter<10) ?>

ifadeleri devam ettir ve kes

Bazen döngünün tamamlanmasını beklemeden çıkmak istediğinizde bir durum ortaya çıkar. Bu durumda break deyimini kullanabiliriz:

80) ( break; ) echo "$i'nin karesi $sonuçtur
"; } ?>

Ve aniden işlemin sonucu 80'den fazla çıkarsa, döngüden çıkar.

Devam ifadesi, döngüleri kontrol etmek için de kullanılır. Döngünün bir sonraki yinelemesine atlar:

"; } ?>

Program çalıştırıldığında $i'nin değeri 5 olduğunda bir sonraki iterasyona geçiş gerçekleşecek ve continue ifadesinden sonra gelen diğer tüm ifadeler çalıştırılmayacaktır.

Ders, php döngü deyimlerini kapsayacaktır: php while döngüsü, foreach döngüsü, do while döngüsü ve sayaçlı for döngüsü. Döngüden çıkış örnekleri analiz edilecektir (php'de - ara ver ve devam et)

Sözdizimi:

while (koşul)( ifade 1; ifade 2; ... )

Döngüde bir bileşik ifade kullanılıyorsa, bu yapıda kaşlı ayraçlar gerekir: yani. bir değil, birkaç işleç dizisi. Yalnızca bir operatör varsa, parantezler atlanabilir.

Pirinç. 4.1. While Döngüsü Örneği


Sonuç:

1 2 3 4 5 6 7 8 9 10

Ayrıca, kullanabilirsiniz alternatif sözdizimi:

while (koşul): ifade 1; operatör 2; ...son sırada;

Pirinç. 4.2. While döngüsünün alternatif kullanımına bir örnek


Örnek: Ekranda bir dizi sayı görüntüleyin 4 7 10 13 16 19 22 ... Toplam 30 basamak görüntüleyin. While Döngüsü php'yi kullanın


Çözüm:
1 2 3 4 5 6 $toplam = 1 ; iken ($i<= 30 ) { $sum += 3 ; $i ++; echo ($sum . " " ) ; }

$toplam=1; iken ($i<=30){ $sum+=3; $i++; echo ($sum." "); }

Sonuç:

4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94

Örnek: 1024'e kadar iki çıkış gücü



Çözüm:

do ( ifade 1; ifade 2; ... ) while (koşul);

Döngü ifadelerinin sayısına bakılmaksızın, bu yapıda küme parantezleri gereklidir.

Pirinç. 4.3. Do While Döngüsü Örneği


Sonuç:

1 2 3 4 5 6 7 8 9 10

Örnek: Bir dizi sayı göster 4 7 10 13 16 19 22.. . Toplam Para Çekme 30 sayılar



Çözüm:

for (sayaç başlangıç ​​değeri; döngü devam koşulu; her yinelemede sayaç değişimi) ( ifade 1; ifade 2; ...; )

  • parantez içindeki hizmet sözcüğünden sonra; belirtilmeli 3 parametre.
  • Döngü gövdesinde yalnızca bir ifade varsa, php'deki For döngüsü kaşlı ayraçlar olmadan olabilir.

Pirinç. 4.4. Döngü Örneği İçin


Sonuç:

Merhaba!
Merhaba!
Merhaba!
Merhaba!
Merhaba!

  • PHP, for döngüsü için alternatif bir sözdizimini destekler:
  • for (sayaç başlangıç ​​değeri; döngü devam koşulu; her yinelemede sayaç değişikliği): ifade 1; operatör 2; ...; sonu;

Örnek: Tarayıcı penceresinde 1'den 10'a kadar sayıları görüntüleyin


Çözüm:
1 2 3 için ($i = 1 ; $i<= 10 ; $i ++ ) { echo $i . " " ; }

için ($i = 1; $i<= 10; $i ++) { echo $i." "; }

Sonuç:

Laboratuvar işi:
çarpım tablosu çizmek

1. Aşama

  1. Sütunlar ve satırlar olmak üzere iki sayısal değişken oluşturun
  2. Oluşturulan değişkenlere rasgele değerler atayın. 1 önceki 10

2. aşama

  1. Döngüleri kullanarak, çarpım tablosunu aşağıdaki koşullarla bir HTML tablosu olarak işleyin:
  • Sütun sayısı, cols değişkeninin değerine eşit olmalıdır
  • Satır sayısı, değişken satırların değerine eşit olmalıdır
  • Sütunların ve satırların kesişimindeki hücreler, sütun ve satırın seri numaralarının çarpımı olan değerleri içermelidir.
  • Döngüler önerilir için
  • Sahne 3

    • İlk satır ve ilk sütundaki hücrelerdeki değerler kalın yazılmalıdır.
    • İlk satır ve ilk sütundaki hücrelerin arka plan rengi tablonun arka plan renginden farklı olmalıdır. Dosya 'yı kaydet.

    Kod ekle:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 " ; for ($td = 1 ; ...; ... ) ( if (... ) ( yankı "" ; ) başka ( yankı " " ; ) ) Eko "" ; } ?>
    " , $tr * $td , "" , $tr * $td , "

    "; for($td=1; ...; ...)( if(...)( yankı " "; )else( yankı " "; ) ) Eko ""; } ?>
    ", $tr * $td, "", $tr * $td, "

    Dizi öğelerinin sayısı

    Dizilerle çalışmanın rahatlığı için, genellikle count () işlevi kullanılır.

    İşlev, dizi öğelerinin sayısını döndürür

    say($masiv) ;

    Örnek: Mevsimlerin isimlerinden oluşan bir dizi verilmiş. Bilinmeyen boyutta bir dizinin tüm öğelerini görüntülemek gerekir


    Çözüm:
    1 2 3 4 5 6 7 8 9 $mas[$n]" . "
    " ; } ?>

    "; } ?>

    Sonuç:

    php'de foreach döngüsü

    Dizi, yinelemeli bir döngü kullanılarak en avantajlı şekilde çaprazlanır her biri için, Perl dilinin sözdiziminden ödünç alınmıştır.


    Pirinç. 4.6. Foreach döngüsü örneği, tam sürüm


    Sonuç:

    Dizin 0'daki dizi 1'dir
    Dizin 1'deki dizi 2'dir
    Dizin 2'deki dizi 3'tür
    Dizin 3'teki dizi 4'tür

    Örnek: Ivan hakkında bilgi içeren kullanıcı dizisinin dizinlerini ve değerlerini yazdırın


    Çözüm:
    1 2 3 4 5 6 7 8 $user["isim"] = "İvan"; $user["giriş"] = "kök"; $user["şifre"] = " [e-posta korumalı]" ; $user = "312-34-85" ; foreach ($user as $index => $value ) ( echo "Index $endeksi $değerine eşittir
    "
    ; }

    $user["name"]="İvan"; $user["giriş"]="kök"; $user["şifre"]=" [e-posta korumalı]"; $user="312-34-85"; foreach($user as $index =>$value)( echo "$index eşittir $value
    "; }

    Sonuç:

    Örnek:

    1. Bir listeden adlar için selamlama görüntüleme
    2. Karşılamaya ek olarak, listedeki numaraları görüntüleyin
    1 2 3 4 5 6 7 8 9 10 $isimler = dizi ("Ivan" , "Peter" , "Semyon" ) ; // 1 iş foreach ($isimler as $val ) ( echo "Merhaba, $val
    "
    ; ) // görev 2 foreach ($isimler as $k => $val ) ( echo "Merhaba, $val! $k numaralı listedesiniz
    "
    ; }

    $isimler = dizi("Ivan","Peter","Semyon"); // her biri için 1 görev ($adlar $val olarak) ( echo "Merhaba $val
    "; ) // görev 2 foreach ($isimler as $k => $val) ( echo "Merhaba $val ! Siz $k kişisiniz listede
    "; }

    Sonuç:

    PHP işi 4_3: Haftanın günlerinin adlarından oluşan bir dizi verilir. Foreach yapısını kullanarak öğeleri alın.

    Bunlara ek olarak:çıktı şu biçimde olmalıdır: Pazartesi - 1. gün



    Laboratuvar işi:
    Sayfada aşağıdaki gibi bir gezinme menüsü çizin (ekleyin):

    <a href="contact.php">İletişim</a>

    İletişim

    menü yapısı olarak bir dizi kullanmak.

    Algoritma:

    1. Bir ilişkisel dizi oluşturun $menu
    2. Diziyi aşağıdaki koşullarla doldurun:
    • Dizi öğesi dizini menü öğesidir, örneğin: Ev, Hakkında, İletişim
    • Dizi öğesinin değeri, bağlantının işaret edeceği dosyanın adıdır, örneğin: index.php, hakkında.php, iletişim.html
  • Bir foreach döngüsü kullanarak, yapısı $menu dizisinde tanımlanan dikey bir menü çizin.
  • Bu makaleyi öğrenmeye yeni başlayanlar için yazıyorum. PHP. Bu yazıda çeşitli konulardan bahsedeceğim. PHP'de döngüler, çünkü bu makale sitemde değildi. Sadece vardı, ancak genel benzerliğe rağmen bu hala aynı değil. AT PHP var 4 tip döngü.

    1. SÜRE
    2. YAPARKEN
    3. HER BİRİ İÇİN

    Bunları sırayla sıralayalım ve en popüler olandan başlayalım. PHP'de döngü(ve sadece PHP) - bu Döngü için. Bu döngünün sözdizimi şöyledir:

    (İfade_1; İfade_2; İfade_3) için (
    operatörler
    }

    İfade_1 derhal ve koşulsuz olarak idam edilir, İfade_3 döngünün her yinelemesinden sonra yürütülür. İfade_2 döngünün devam edip etmeyeceğini görmek için yapılan bir testtir. ifadenin sonucu ise doğru, ardından döngünün bir sonraki yinelemesi başlar ve eğer yanlış, sonra döngü sona erer.

    Bir sonraki döngü türü SÜRE. Bu, sözdizimi aşağıdaki gibi olan daha basit bir döngü türüdür:

    while(İfade) (
    operatörler
    }

    Hoşçakal İfadeİadeler doğru, döngü çalışacak ve göründüğü anda yanlış, çalışmayı durdurur.

    DO-WHILE döngüsüçok benzer SÜRE, ancak bir farkla. Çıkış koşulu, yineleme yapıldıktan sonra kontrol edilir, daha önce değil. Böylece, bu döngü her zaman en azından yürütülecektir. 1 bir Zamanlar. Ve bu yüzden DO-WHILE döngü sözdizimi:

    Yapmak(
    operatörler
    )while(Koşul);

    Ve son olarak, son döngü türü her biri için hizmet veren yalnızca diziler ve nesneler üzerinde yineleme yapmak için. Dizinin anahtarları sayı olmadığında gereklidir (aynı şekilde yinelenmesi kolaydır). İÇİN) ve diziler. FOREACH Döngü Söz Dizimi sonraki:

    Foreach($array_or_object as $key => $value) (
    operatörler
    }

    Ve son olarak, her şeyi uygulayalım Diziler üzerinde yineleme yapmak için PHP'de 4 tür döngü:

    $list = dizi(5, 2, 3, 10, 12, 10);
    $dizi = dizi("a" => 1, "x" => 10, "m" => -5);
    için ($i = 0; $i< count($list); $i++) {
    echo $list[$i]."; ";
    }
    Eko "
    ";
    $i = 0;
    iken ($i< count($list)) {
    echo $list[$i]."; ";
    $i++;
    }
    Eko "
    ";
    $i = 0;
    yapmak(
    echo $list[$i]."; ";
    $i++;
    )while($i< count($list));
    Eko "
    ";
    foreach ($array as $key => $value) (
    echo "$anahtar = $değer; ";
    }
    ?>

    Herhangi bir programcı tüm bu döngüleri ezbere bilmelidir, bu nedenle bir şey net değilse, tekrar okuyun veya yorumlarda bir soru sorun, ben de cevaplamaya çalışacağım.

    Döngü ifadeleri, herhangi bir programlama dilinde çok sık kullanılır. Hemen hemen tüm görevler döngüler kullanır, bu nedenle onları incelemeye özel önem vermeye değer. PHP'de 4 tür döngü vardır:

    • while (önek durumu kontrolü);
    • do..while (postperfix durum kontrolü);
    • için;
    • her biri için ;

    İlk üç döngü, programlama dillerinden (C++, Pascal) standart döngülere benzer ve sonuncusu (foreach) Perl'e benzer. İlk üç döngü deyimini ayrı ayrı inceleyelim ve sonuncusu ayrı bir derste ele alınacaktır. Döngülerin her birinin iç içe döngülere, yani döngü içinde bir döngüye izin verdiğine dikkat edin.

    PHP'de while döngüsü ifadesi

    Sözdizimi diğer programlama dillerindeki sözdizimine çok benzeyen oldukça basit bir döngü ifadesi.

    PHP'deki while sözdizimi şöyledir:

    //karmaşık bir boole koşulu olabilir( operatörler; ) ?>

    Koşul, doğru (doğru) veya yanlış (yanlış) olması gereken bir ifadedir. Koşul doğruysa, kaşlı ayraç içindeki ifadeler yürütülür. Bundan sonra, koşul tekrar doğruluk açısından kontrol edilir. Koşul yanlış ise program döngüye girmez. Tek bir ifade olması durumunda kaşlı ayraçlar ihmal edilebilir.

    Not: bir koşul &&, ||, ! mantığının cebirini kullanan çok sayıda ifadeden oluşabilir. vb.

    Durumda operatörler varsa, o zaman bir şekilde değişmeleri gerektiğine dikkat etmeye değer, aksi takdirde döngü basitçe döngüye girer.

    İşte while kullanan basit bir örnek:

    "; $i++; ) ?>

    Yukarıdaki örnek aşağıdaki çıktıyı üretecektir:

    ben = 0
    ben = 1
    ben = 2
    ben = 3
    ben = 4

    $i=5'in yazdırılmayacağını unutmayın, çünkü i döngünün en sonunda artar ve bu nedenle, 5'e ulaşır ulaşmaz, döngüye girme koşulu yerine getirilmeyecektir.

    PHP'de Break deyimi

    Döngüyü hemen sonlandırmak için özel bir break ifadesi vardır. Bu operatör genellikle bir koşul her zaman doğru olduğunda sonsuz bir döngüden çıkmak için kullanılır. Örneğin, yukarıdaki örnek şu şekilde yazılabilirdi:

    //koşul her zaman doğrudur( echo "i =".$i."
    "; $i++; if($i>=5) break; ) ?>

    Sonuç önceki örnekteki ile aynı olacaktır.

    PHP'de ifadeye devam et

    ifadeye devam; döngünün geçerli yinelemesini sona erdirir, başlangıca gider, ancak döngüyü tamamen sonlandırmaz. Örneğin:

    //koşul her zaman doğrudur( echo "i =".$i."
    "; $i++; if($i>=5) ara; yoksa devam; ) ?>

    Bu örneğin sonucu önceki örneklerle aynı olacaktır.

    Pratikte görüldüğü gibi devam edin; ve kır genellikle karmaşık döngülerin uygulanmasına yardımcı olur.

    İşte bir while döngüsü kullanmanın başka bir örneği:

    "; } //bu iki while'ın sonuçları //sonek ve önek formundan dolayı farklı olacaktır$i=0; while (++$i //prefix formu ( echo "i =".$i."
    "; } ?>

    PHP'de do...while döngü deyimi

    do...while deyimi normal bir while deyimine çok benzer. Tek farkları, durumu kontrol etme zamanıdır. Kontrol en sonda gerçekleştiği için do...while döngüsü en az bir kez yürütülür. sözdizimi do...while :

    Bir örnek düşünün:

    "; $i++; ) while($i

    Sonuç, ilk dikkate alınan örneklere benzer.

    devam ettiğini belirtmekte fayda var; ve kır bu tür döngülerde de kullanılabilir.

    PHP'de döngü ifadesi için

    for ifadesinin sözdizimi aşağıdaki gibidir:

    Başlangıçta, değişkenlerin başlatılması gerçekleşir. usloviya bir veya daha fazla döngü sonlandırma koşulu içermelidir. Sevişme, her yinelemenin sonunda yürütülen ifadeleri içerir. Örneğin:

    "; } ?>

    Bu döngüyü yürütmenin sonucu, önceki örneklerdeki ile aynı olacaktır.

    for kullanmanın en büyük avantajı ilmek gövdesi atlanabilmesi ve gerekli tüm işlemlerin shag bölümünde yapılmasıdır. Netlik için, işte bir örnek:

    ", $i++); ?>

    Yorum: sevişmede yankıya izin verilmez .

    Döngü adımı ve koşulları çok çeşitli olabilir. Örneğin, i++ değil, i+=5 (5'er artış) yazabilirsiniz.

    for döngüsünün her bölümü atlanabilir, bu da sonsuz bir döngüyle sonuçlanır:

    for devam kullanımına izin verir; ve kır .

    Son olarak, iki eşdeğer döngü yapısına bir örnek vereceğiz, ancak biri for, diğeri ise while olacak.

    Aşağıdakilere eşdeğer:

    Bir for döngüsünün sözdizimi aşağıdaki gibidir:

    Bu döngü, for anahtar sözcüğünden ve ardından noktalı virgülle ayrılmış, içinde üç ifade içeren parantezlerden oluşur. Aşağıdaki yürütme sırasına sahiptir:

    1. Döngünün başında, başlatma ifadesi yürütülür, her zaman en başta yalnızca bir kez değerlendirilir (yürütülür).
    2. Sonra koşullu ifade gelir. Her yineleme başlamadan önce, koşullu ifadenin (yürütme koşulu) değeri değerlendirilir, TRUE olarak değerlendirilirse döngü gövdesi yürütülür, FALSE olarak değerlendirilirse döngü yürütmesi sona erer. İlk testte koşul yanlışsa, döngü gövdesi asla yürütülmez.
    3. En sonunda, döngü gövdesindeki eylemler gerçekleştirildikten sonra, son ifade (koşuldan sonraki ifade) işlenir. Bu durumda, bu artan bir ifadedir - sayaç değişkeninin değerini bir artış yardımıyla artırır.

    Basit bir for döngüsü örneği:

    Aslında, for döngüsü, çok çeşitli şekillerde kullanılabilmesi açısından neredeyse evrenseldir.

    başlık parçaları olmayan döngü için

    for döngüsünün başındaki ifadelerin her biri eksik olabilir.

    Başlatma gerekli değilse veya başka bir yerde yapılıyorsa, başlatma ifadesine gerek yoktur. Bir önceki örneği biraz yeniden yazalım:

    Eksik ifade anlamına geldiği için noktalı virgül karakterinin gerekli olduğunu unutmayın. Bir koşul ifadesinin olmaması, koşula DOĞRU'nun eklenmesiyle eşdeğerdir.

    Bu durumda, döngü süresiz olarak çalışacaktır. Artan bir ifade yoksa, döngü gövdesinde olmalıdır, aksi takdirde döngü süresiz olarak yürütülür.

    Unutmayın, üç ifadeden herhangi biri veya hepsi birden atlanabilir, ancak ayırıcı noktalı virgüller (;) her zaman ayarlanmalıdır.

    Döngü başlığı için çoklu ifadeler

    for döngüsü başlığında, noktalı virgülle ayrılmış her ifade birden çok virgülle ayrılmış ifade içerebilir. Bu nedenle, herhangi bir karmaşıklığın ifadeleri kullanılabilir.

    "; } ?>

    Çalıştırma koşulunda virgülle ayrılmış birden fazla ifade kullanılıyorsa hepsi değerlendirilir ancak sonuç sonuncusundan alınır.

    İç içe geçmiş döngüler

    Koşullu ifadeler gibi, döngüler de iç içe olabilir. Tek seviyeli iç içe geçmiş basit bir örnek:

    "; için ($j = 0; $j< 2; $j++) { echo "Вложенный цикл.
    "; } } ?>