Silmukat PHP:ssä. PHP foreach -silmukka: kaksi tapaa käyttää sitä Php kaksoislaskenta silmukassa

On epätodennäköistä, että pystyt kirjoittamaan vakavan skriptin PHP:llä ilman silmukoita. Mikä on sykli? Tämä on erityinen ohjausrakenne, jonka avulla voit toistuvasti (ja jopa loputtomasti) suorittaa saman koodin. PHP tukee seuraavia silmukoita:

Ensimmäiset kolme silmukkaa ovat niitä, joita näet todennäköisesti useimmissa ohjelmointikielissä. Silmukat voidaan olosuhteista riippuen keskeyttää tai jatkaa (siirry seuraavaan iteraatioon suorittamatta silmukan runkoa). Katsotaanpa tarkemmin jokaista sykliä.

silmukalle

For-silmukan syntaksi on seuraava.

For(alustus; ehto; komennot_iteration_jälkeen) (silmukan_kappale; )

Alustuslohko alustaa aina laskurin sekä muut muuttujat (tarvittaessa). Ehtolohko määrittää, missä vaiheessa silmukan tulee pysähtyä. Jokaisen silmukan iteraation jälkeen suoritettavassa komentolohkossa laskurin arvo yleensä muuttuu, samoin kuin muut muuttujat (tarvittaessa).

// Arvojen joukko $array = array("Omena", "Peruna", "Vesimeloni", "Kukka", "Vesi", "elohopea", "happi", "vehnä", "Venäjä", "Moskova" ", " Suihku"); // Silmukan ehto kuulostaa tältä: kunnes laskuri saavuttaa arvon, joka on yhtä suuri // kuin taulukon elementtien lukumäärä, silmukan runkoa suoritetaan for($i = 0; $i< count($array); $i++) { print "
".($i + 1)". ".$i].." /* Jakson tulos on seuraava: 1. Peruna 4. Kukka 8. Vehnä 10. Moskova.

Koska laskuri $i alkoi nollasta, lisäsimme jokaisessa iteraatiossa sen arvoon yhden, jotta lista näyttäisi tutummalta. Jokaisen iteraation jälkeen laskurin arvoa kasvatettiin yhdellä, ja kun se saavutti arvon 11, silmukka pysähtyi. Katsotaanpa nyt do-while-silmukkaa.

do-while -silmukka

Do-while-silmukka on erilainen, koska se toimii jälkiehdoin. Tämä tarkoittaa, että silmukan rungossa oleva koodi suoritetaan vähintään kerran. Silmukan syntaksi on:

Do (silmukka_body; ) while(ehto);

Tätä silmukkaa käytetään melko harvoin web-ohjelmoinnissa, mutta saatat tarvita sitä komentosarjoissasi.

// Meille jo tuttu array $array = array("Omena", "Peruna", "Vesimeloni", "Kukka", "Vesi", "elohopea", "happi", "vehnä", "Venäjä", "Moskova" " , "Sade"); // Aloita silmukan $i = 1; tee (tulosta"
".$i." ".$array[($i - 1)]." ) while($i++< count($array)); /* Результат работы цикла будет таким: 1. Яблоко. 2. Картошка. 3. Арбуз. 4. Цветок. 5. Вода. 6. Ртуть. 7. Кислород. 8. Пшеница. 9. Россия. 10. Москва. 11. Ливень. */

Huomaa ero sen välillä, mitä tulostamme tässä silmukassa ja for-silmukassa. Koska do-while-silmukan rungossa oleva koodi suoritetaan vähintään kerran, laskurin alkuarvoksi asetettiin nolla. Kuinka silmukka toimii... koodi suoritetaan, sitten ehto testataan. Ensimmäisellä iteraatiolla laskurin arvo oli 1. Iteroinnin jälkeen yksi osoittautui pienemmäksi kuin 11 (elementtien lukumäärä). Viimeisessä iteraatiossa laskurin arvo oli 11, eikä tämä ole millään tavalla pienempi kuin 11. Silmukka pysähtyi. While-silmukka on hyvin samanlainen kuin do-while.

kun silmukka

While-silmukka on ennakkoehtoinen. Se suoritetaan vain, kun sen ehto on totta. Toisin sanoen while-silmukkaa ei ehkä suoriteta ollenkaan. Sen syntaksi on:

While(ehto) (silmukan_kappale; )

For-silmukan ohella while-silmukkaa käytetään hyvin usein.

$array = array("omena", "peruna", "vesimeloni", "kukka", "vesi", "elohopea", "happi", "vehnä", "Venäjä", "Moskova", "sade"); $i = 1; while($i++<= count($array)) { print "
".$i." ".$array[($i - 1)]."."; ) /* Silmukan tulos on seuraava: 1. Omena. 2. Peruna. 3. Vesimeloni. 4. Kukka. 5. Vesi. 6. Elohopea 8. Vehnä 11. Sade.

While-silmukka on yksinkertaisin ja aloitteleville kehittäjille ymmärrettävin.

foreach silmukka

Foreach-silmukka ei ole kuten kaikki edellä mainitut. Se ilmestyi PHP4:ssä ja on suunniteltu iteroimaan taulukoiden yli. Kehittäjän ei tarvitse keksiä mitään tätä varten. Kaikki on helppoa ja yksinkertaista:

/** * Foreach-silmukka tulee ymmärtää "jokaiselle". * Silmukan käsittelemä taulukko välitetään muuttujalle, joka on * käytettävissä vain silmukan rungossa. Halutessasi voit käyttää myös *-taulukkonäppäimiä. */ foreach(matriisi taulukon_elementtinä) (silmukka_kappale; ) foreach(matriisi taulukon_avain => taulukon_elementti) (silmukka_runko; )

Foreach-silmukan periaate eroaa täysin for-, while- ja do-while-silmukaista. Siksi kokemattomien kehittäjien on melko vaikea ymmärtää, mitä sillä voi (ja jopa pitäisi) tehdä.

// Muutetaan jo tuntemamme taulukko. Tehdään siitä assosiatiivista. $array = array("Omena" => "hedelmä", "Peruna" => "vihannes", "Vesimeloni" => "marja", "kukka" => "kasvi", "vesi" => "neste", "Elohopea" => "metalli", "happi" => "kaasu", "vehnä" => "leipä", "Venäjä" => "isänmaamme", "Moskova" => "isänmaamme pääkaupunki", "Rain " => "popados"); $i = 1; // Voimme tehdä tämän foreach($array as $v) ( print "
".$i." ".$v."."; $i++; ) /* Saamme tämän odottamattoman tuloksen: 1. hedelmä. 2. vihannes. 3. marja. 4. kasvi. 5. neste. 6. metalli. 7. kaasu. 8 leipä 9. isänmaan pääkaupunki */ // Tehdään nyt toisin foreach($array as $k => $v.
".$i." ".$k." on ".$v."; $i++ ) 5. Elohopea on kaasu 10. Moskova on isänmaamme.

Ymmärrätkö kuinka tämä sykli toimii? Jos ei, voit esittää kysymyksen materiaalin kommenteissa.

Voit käyttää rakenteita missä tahansa silmukassa tauko tai jatkaa. Joskus ei ole järkevää jatkaa silmukkaa tai sinun on siirryttävä seuraavaan iteraatioon.

$array = array("Omena" => "hedelmä", "Peruna" => "vihannes", "Vesimeloni" => "marja", "kukka" => "kasvi", "vesi" => "neste", "Elohopea" => "metalli", "happi" => "kaasu", "vehnä" => "leipä", "Venäjä" => "isänmaamme", "Moskova" => "isänmaamme pääkaupunki", "Rain " => "popados"); $i = 1; // Esimerkki siitä, kuinka silmukka toimii konstruktin kanssa jatkaa foreach($array as $k => $v) ( if($k != "Oxygen") jatka; print "
".$i." ".$k." on ".$v."; $i++; taulukko muodossa $k = > $v) ( if($k == "Happi") break; print "
".$i." ".$k." on ".$ v." ) /* Tuloksena on 1. Omena on kasvi. 5. Vesi on neste. 6. Elohopea on metalli.

Muistilappu: Sivuston mukautuva versio on aktivoitu, joka mukautuu automaattisesti selaimesi pieneen kokoon ja piilottaa joitain sivuston yksityiskohtia lukemisen helpottamiseksi. Nauti katsomisesta!

Hei rakkaat lukijat ja säännölliset tilaajat! On aika jatkaa artikkelisarjaa PHP:stä ja tänään tutkimme sellaista perus- ja samalla erittäin tärkeää asiaa kuin silmukat. Mikä on ensimmäinen asia, joka sinun on tiedettävä syklistä? Ja se, että niitä käytetään kaikkialla, ja mallit Joomlalle, VirtueMartille, Wordpressille, OpenCartille ja muille CMS:ille eivät ole poikkeus.

Mikä on sykli? Kierrä on saman koodinpalan toistuva toisto. Kuinka monta toistoa on tehtävä, riippuu syklilaskurista, jonka luomme itse ja voimme ohjata. Tämä on erittäin kätevää esimerkiksi silloin, kun meidän on esitettävä tuotteita verkkokauppakategoriassa, näytettävä blogikirjoituksia, näytetään kommentteja artikkelista tai tuotteesta, myös kaikki CMS:n valikot (verkkosivustomoottorit) tehdään syklien avulla. Yleensä silmukoita käytetään hyvin usein.

Mutta ennen kuin siirryt itse silmukoihin, sinun on ensin ymmärrettävä sellainen asia kuin operaattorit lisäys Ja vähennys.

Operaattori ++ (lisäys) suurentaa muuttujan arvoa yhdellä, kun taas operaattori -- (vähennys) pienentää muuttujan arvoa yhdellä. Niitä on erittäin kätevä käyttää silmukoissa laskurina ja ohjelmoinnissa yleensä. On myös PRE-lisäys/vähennys ja POST-lisäys/vähennys:

PRE lisää/vähentää ++$a Lisää $a:ta yhdellä ja palauttaa $a:n arvon. --$a Vähentää $a:ta yhdellä ja palauttaa $a:n arvon. POST increment/decrement $a++ Palauttaa $a:n arvon ja lisää sitten $a:ta yhdellä. $a-- Palauttaa $a:n arvon ja pienentää sitten $a:ta yhdellä.

Esimerkiksi:

$a = 1; echo "Tulosnumero: " . $a++; // Tulosta numero: 1 echo "Lähetä numero: " . $a; // Tulosta numero: 2 echo "Lähetä numero: $a"; $a += 1; // sama kuin ensimmäisellä rivillä$a = 1; echo "Tulosnumero: " . +$a; // Tulosta numero: 2 echo "Lähetä numero: " . $a; // Tulosta luku: 2 $a += 1; echo "Tulosnumero: $a"; // sama kuin tämän lohkon ensimmäisellä rivillä

silmukalle

for (osa A; osa B; osa C)( // Mikä tahansa koodi, niin monta riviä kuin haluat; )

For-silmukka koostuu 3 osasta ja itse rungosta. Osa A se vain tekee mitä sanoo, yleensä 90 %:ssa tapauksista se luo silmukkalaskurin. Osa B- tämä on karkeasti sanottuna meille jo tuttua jos, eli totuuden tarkistaminen (totta?). Jos ehto on totta, niin se on totta, sitten PHP menee silmukan sisään ja jatkaa sen suorittamista. Osa C- sama kuin osa A, pääsääntöisesti osassa C teemme laskurin kanssa jonkinlaisen muunnoksen. Esimerkiksi:

"; ) echo "POISTU SILMUSTA ja jatkoi koodia..."; ?>

Nyt for-silmukan algoritmista. Ensimmäinen asia, jonka PHP näkee, on se, että se menee osaan A ja suorittaa sen vain kerran (katso kuva alla). Seuraavaksi PHP siirtyy osaan B ja tarkistaa, onko se tosi vai epätosi. Jos tosi, se suorittaa silmukan rungon ja vasta sen jälkeen siirtyy osaan C. Tämän jälkeen PHP siirtyy jälleen osaan B ja tarkistaa, onko se edelleen totta siellä vai ei. Jos ei, silmukka päättyy, jos kyllä, niin se jatkuu, kunnes osa B sisältää false.

Edellisen esimerkin tulos:

Vaikka Loop

while (osa B)( // Mikä tahansa koodi, niin monta riviä kuin haluat; )

Kuten näette, ei ole osaa A ja osaa C, for-silmukasta on jäljellä vain ehto eli osa B. Jos joudumme käyttämään laskuria, niin se on sijoitettava while-silmukan sisään, mm. loput koodista, tämä on osa C. Create Laskuri tarvitaan ennen while-konstruktin alkua:

Osa A; while (osa B)( // Mikä tahansa koodi, niin monta riviä kuin haluat; osa C; )

Muunnetaan edellinen for-silmukka while-silmukaksi:

"; $i++; ) echo "POISTUI SOLUSTA ja siirtyi koodin läpi..."; ?>

Tulos on täsmälleen sama. Mitä käyttää: for-silmukka tai while-silmukka on makuasia, katso mikä on sinulle kätevämpää ja loogisempaa, ei eroa.

Tee... kun silmukka

Harvinainen kaikissa syklityypeissä. Pohjimmiltaan tämä on käänteinen aika. Sen temppu on, että PHP tulee ehdottomasti do... while -silmukan runkoon ainakin kerran (ensimmäisellä kerralla), koska tämän silmukan lopussa on ehto:

Osa A; do( // Mikä tahansa koodi, niin monta riviä kuin haluat; Osa C; )while(Osa B);

"; $i++; )while($i< 8); echo "ВЫШЛИ ИЗ ЦИКЛА и пошли дальше по коду..."; ?>

On tärkeää ymmärtää: kaikissa kolmessa syklityypissä ei ole pakollisia osia.

Esimerkki for-silmukasta ilman osaa A ja osaa C:

For(;$i > 8;)( // koodisi )

Esimerkki for-silmukasta ilman kaikkia kolmea osaa:

For(;;)( // klassinen loputon silmukka)

Eli kaikki puolipisteet pysyvät edelleen for-silmukassa, tämä on syntaksi!

Loputtomat silmukat

Ääretön silmukka on kehittäjävirhe, jossa sivu ei koskaan lataudu loppuun, koska silmukan ehto (osa B) on aina tosi. Esimerkiksi:

"; $i++; )while($i != 0); echo "POISTU SILMUSTA ja siirtyi koodin läpi..."; ?>

Tulos:

Näytin vain osan tästä, koska kaikki ei mahdu näytölle. Näin selaimesi ja sivustosi palvelin kärsivät loputtomasti, kunnes selain kaatuu 30 sekunnin kuluttua Ja kaikki siksi, että yllä olevassa esimerkissä $i-muuttuja ei ole koskaan yhtä suuri kuin nolla, se on aluksi yhtä kuin 1 ja on jatkuvasti. lisääntyy.

Eli kehittäjä oli välinpitämätön, kun hän keksi tällaisen ehdon.

Kierrosten hallinta

Kuljettajan tauko. On tilanteita, joissa emme tarvitse silmukkaa kaikkien iteraatioiden (toistojen) toistamiseen. Esimerkiksi jossain vaiheessa haluamme keskeyttää sen ja jatkaa suorittamista alla olevalla koodilla:

"; if ($i === 5) break; // poistu silmukasta, jos $i on 5 $i++; ) echo "Voin laskea vain 5:("; ?>

Tulos:

Yllä olevassa esimerkissä PHP poistui silmukasta heti kun saavutimme viisi, muuten se olisi laskenut 7:ään.

Jatka operaattoria keskeyttää myös silmukan suorituksen, mutta toisin kuin break, jatka ei poistu silmukasta, vaan palauttaa PHP-tulkin takaisin ehtoon (osaan B). Esimerkki:

"; ) echo "Minäkö missasin jotain?"; ?>

Tulos:

Meiltä puuttui vain numero 5, koska PHP ei saanut kaikua.

Silmukka voidaan upottaa silmukan sisään. Tässä tapauksessa jatka- ja break-lauseet koskevat vain yhtä silmukkaa, jossa ne sijaitsevat. Toisin sanoen ne siirtyvät yhdelle tasolle, eivätkä kaikille. Esimerkki:

Mutta voimme itse valita, kuinka monta tasoa meidän tulee hypätä läpi:

"; $i++; $i=1; $k=1; while ($k< 8) { echo "Итерация $k номер ". $k . "
"; jos ($k === 5) tauko 2; $k++; ) ) ?>

Tulos:

Emme tietenkään voi asettaa lukua, joka on suurempi kuin sisäkkäisten silmukoiden lukumäärä.

foreach silmukka

Viimeinen järjestyksessä, mutta tärkein merkitys, on foreach-silmukka. Käytetty vain luettelointia ja esineitä varten (on liian aikaista opettaa niitä). Esimerkkisyntaksi:

"; } ?>

Tulos:

Tämä oli lyhyt foreach-konstrukti, mutta siitä on myös laajennettu versio, joka näyttää taulukon solujen arvojen lisäksi myös solujen (avainten) nimet:

$arvo) ( echo "Osiossa " . $avain ." on artikkeli nimeltä: ". $arvo ."
"; } ?>

Tulos:

Kiinnitän huomionne siihen, että voimme kutsua muuttujia mitä tahansa, jopa $avain ja $arvo, jopa $xxx ja $yyy.

Jos se on taulukko, käytämme vain foreach-silmukkaa emmekä muita. Tätä sykliä käytetään kaikkialla VirtueMartissa ja todellakin kaikkialla.

Viimeisin päivitys: 1.11.2015

Toistettavien toimien suorittamiseen PHP:ssä, kuten muissakin ohjelmointikielissä, käytetään silmukoita. PHP:ssä on seuraavan tyyppisiä silmukoita:

silmukalle

For-silmukalla on seuraava muodollinen määritelmä:

For ([alustaa laskuri]; [ehto]; [muutoslaskuri]) ( // toimet )

Harkitse silmukan standardia:

"; } ?>

Silmukan ilmoituksen ensimmäinen osa - $i = 1 - luo ja alustaa laskurin - muuttujan $i. Ja ennen kuin silmukka suoritetaan, sen arvo on 1. Pohjimmiltaan tämä on sama kuin muuttujan ilmoittaminen.

Toinen osa on ehto, jossa silmukka suoritetaan. Tässä tapauksessa silmukka jatkuu, kunnes $i saavuttaa arvon 10.

Kolmas osa nostaa laskuria yhdellä. Jälleen kerran, meidän ei välttämättä tarvitse lisätä yhdellä. Voit pienentää: $i--.

Tämän seurauksena silmukkalohko suoritetaan 9 kertaa, kunnes $i:n arvosta tulee 10. Ja joka kerta tämä arvo kasvaa yhdellä. Jokaista yksittäistä silmukan toistoa kutsutaan iteraatioksi. Näin ollen tässä tapauksessa on 9 iteraatiota.

kun silmukka

While-silmukka testaa jonkin ehdon totuuden, ja jos ehto on tosi, silmukkalausekkeiden lohko suoritetaan:

"; $laskuri++; ) ?>

Jos while-lohkossa on vain yksi käsky, lohkon kiharat aaltosulut voidaan jättää pois:

"; ?>

do...when loop

Do..while-silmukka on samanlainen kuin while-silmukka, vain nyt silmukkalohko suoritetaan ja vasta sitten ehto testataan. Eli vaikka ehto olisi epätosi, silmukkalohko suoritetaan vähintään kerran:

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

Jatka ja katkaise väitteet

Joskus syntyy tilanne, kun sinun on poistuttava silmukasta odottamatta sen valmistumista. Tässä tapauksessa voimme käyttää break-lausetta:

80) ( break; ) echo "$i:n neliö on yhtä suuri kuin $tulos
"; } ?>

Ja jos yhtäkkiä toiminnan tulos on yli 80, silmukka poistuu.

Jatka-operaattoria käytetään myös silmukoiden ohjaamiseen. Se siirtyy silmukan seuraavaan iteraatioon:

"; } ?>

Ohjelmaa suoritettaessa, kun $i:n arvoksi tulee 5, siirtyy seuraavaan iteraatioon, eikä muita jatka-operaattoria seuraavia lausekkeita suoriteta.

For-silmukka on yksi yleisimmin käytetyistä silmukoista missä tahansa ohjelmointikielessä. Tässä artikkelissa tarkastellaan lähemmin PHP for -silmukkaa.

PHP:n silmukkaoperaattorille

PHP:n for-silmukka suorittaa koodilohkon tietyn määrän kertoja laskurin perusteella. Tässä tapauksessa koodilohkon suorituskertojen lukumäärä määritetään etukäteen ennen silmukan runkoon siirtymistä.

for on yksi monimutkaisimmista silmukan tyypeistä. PHP:ssä for-silmukka toimii samalla tavalla kuin C. Alla on syntaksirakenne:

for(lauseke1;lauseke2;lauseke3) -lause;

Yllä olevassa kuvauksessa avainsana for tarkoittaa silmukkaa. Suluissa määritellään lausekkeet ja sitten suoritettava käsky.

Miten for-silmukka toimii PHP:ssä?

Ymmärtääksemme, miten for-silmukka toimii, meidän on ymmärrettävä nämä kolme lauseketta. Lauseke: lauseke1 on ensimmäinen, joka suoritetaan vain kerran ennen silmukkaan siirtymistä. Se suoritetaan ehdoitta. Tämä tarkoittaa, että lauseke suoritetaan ensimmäisen kerran ennen silmukkaan siirtymistä.

Lause1:tä kutsutaan alustuslausekkeeksi, koska sitä käytetään lausekkeissa 2 ja lausekkeessa3 käytetyn laskurin alustamiseen.

Lauseke2 ( kunnon tarkistus) tarkistetaan sen määrittämiseksi, salliiko ehto käskyn suorittamisen vai ei. Ensimmäistä kertaa se suoritetaan lausekkeen1 jälkeen, sitten ennen silmukkaan siirtymistä.

Yleensä lauseke2 sisältää ehdollisen lauseen sen testaamiseksi, palauttaako ehto tosi vai epätosi. Jos ehto palauttaa tosi, silmukkaan kirjoitettu käsky suoritetaan.

Lauseke3 suoritetaan jokaisen iteraation lopussa silmukkakäskyn jälkeen. Tyypillisesti ohjelmoijat kutsuvat sitä lisäyslausekkeeksi. He käyttävät tätä lauseketta lisätäkseen sen laskurin arvoa, joka aloitettiin lausekkeessa1 ja arvioitiin lausekkeessa2.

Kaikki kolme lauseketta ovat valinnaisia. Voit myös luoda PHP-silmukan, kuten alla:

for(;;) lausuma;

for(;lauseke2;lauseke3)-lause;

Jos for-silmukassa on useita rivejä, käytä alla olevia kiharoita:

for(lauseke1;lauseke2;lauseke3)( lause1; lauseke2; lauseke3; )

Silmukkavuokaaviolle

Ensimmäisessä vaiheessa lauseke1 suoritetaan. Jos tarkastelet lohkokaaviota tarkasti, huomaat, että lausekkeelle1 ei ole ehtoa. lauseke1 on samanlainen kuin suoritettavan ohjelman kulku.

Seuraava vaihe suorittaa lausekkeen2 välittömästi lausekkeen1 jälkeen. Se tarkistaa, onko silmukan ehto tosi. Jos ehto on tosi, silmukan suoritus jatkuu, muuten säie poistuu silmukasta.

Jos lauseke2 palauttaa tosi, kolmas vaihe suorittaa for-silmukkaan kirjoitetun käskyn. Tämän jälkeen suoritetaan kolmas lauseke lauseke3.

Kun lauseke3 on suoritettu, säie tarkistaa lausekkeen2 uudelleen ja silmukka jatkuu, kunnes lauseke2 palauttaa epätosi.

Yksinkertainen esimerkki for-silmukasta PHP:ssä

Tarkastellaanpa tapausta, jossa sinun on näytettävä numerot 1-10 pilkuilla erotettuina. Alla on koodi:

for($i=1;$i<=10;$i++) print $i.",";

Tai kiharalla aaltosulkeella:

for($i=1;$i<=10;$i++) { print $i.","; }

Lauseke $i=1 on lauseke1 , joka suoritetaan ehdoitta. Käytämme lauseketta1 alustaaksemme muuttujan arvoon $i=1 .

Lauseke2 on lauseke $i :

$i = 1; for(;$i<=10;$i++) { print $i.","; }

$i = 1; for(;$i<=10;) { print $i.","; $i++; }

Monimutkainen lauseke for-silmukassa

Voit kirjoittaa kolme lauseketta for-silmukkaan. Voimme kirjoittaa useita lausekkeita jokaiseen lausekkeeseen for-silmukassa. Operaattorit on erotettava pilkuilla.

Katsotaanpa esimerkkiä edellisestä koodista numeron tulostamiseksi väliltä 1-10. Käyttämällä lausekkeessa useita operaattoreita voit kirjoittaa alla olevan koodin:

for($i=1; $i<=10; print $i . ",", $i++);

Tässä lauseke3 on print $i.’,’, $i++ , joka yhdistää kaksi operaattoria, joista toinen on print $i. ',' ja toinen on $ i++ .

Yllä on esimerkki, jossa olemme käyttäneet lausekkeessa3 useita operaattoreita. Mutta voit myös käyttää useita operaattoreita missä tahansa lausekkeessa. Esimerkiksi:

Vastaavasti voit tulostaa kaikki parittomat luvut alle 10 käyttämällä seuraavaa koodia:

Array ja for-silmukka PHP:ssä

Voit käyttää PHP for -silmukkaa iteroidaksesi taulukon läpi. Meillä on esimerkiksi taulukko, joka sisältää eri ihmisten nimet. Meidän on näytettävä kaikki nimet:

$nimet = array("Ankur", "John", "Joy"); $count = count($names); for($laskuri=0;$laskuri<$count;$counter++){ print $names[$counter]; }

Voit myös käyttää moniulotteista taulukkoa for-silmukassa:

$nimet = array(array("id" => 1, "name" => "Ankur"), array("id" => 2, "name" => "Joe"), array("id" => 3, "nimi" => "Johannes"),); $count = count($names); for ($laskuri = 0; $laskuri< $count; $counter++) { print "Name".$names[$counter]["name"]." ID".$names[$counter]["id"]."n"; }

Sisäkkäinen silmukalle

PHP:ssä on mahdollista käyttää sisäkkäistä for-silmukkaa. Esimerkki:

$metrix = array(taulukko(1, 2, 3), array(2, 1, 3), array(3, 2, 1),); $count = count($metrix); for ($laskuri = 0; $laskuri< $count; $counter++) { $c_count = count($metrix[$counter]); for ($child = 0; $child < $c_count; $child++) { echo $metrix[$counter][$child]; } }

Meillä on moniulotteinen taulukko ja käytämme kahta PHP for loop -elementtiä näyttämään sen elementtien arvot.

Kun käytät sisäkkäistä silmukkaa, voit käyttää ylätason silmukkalauseketta lapsisilmukassa. Esimerkiksi:

for ($i = 1; $i<= 5; $i++) { for ($j = 1; $j <= $i; $j++) { echo "*"; } echo "
"; }

Yllä oleva ohjelma on yksi suosituimmista tulostaa *-symboli suorakulmaisen kolmion muotoon.

Lisäys for-silmukassa

Melkein kaikissa yllä olevissa esimerkeissä käytimme lisäyskäskynä lauseketta3, joka on viimeinen lauseke. Olemme myös usein suurentaneet arvoa yhdellä kaikissa esimerkeissä, esimerkiksi $i++ tai $j++ ja niin edelleen. Mutta voimme kasvattaa laskuria tarpeidemme mukaan. Jos esimerkiksi haluat tulostaa kaikki parittomat luvut 1:stä 15:een, voit alustaa silmukan arvolla 1 ja iteroida 15:een ja kasvattaa laskuria kahdella:

for($laskuri = 1; $laskuri<=15;$counter=$counter+2){ print $counter.","; }

Yllä olevan koodin tulos on " 1,3,5,7,9,11,13,15 " Tässä lisäämme laskurimuuttujaa +2 käyttämällä lauseketta $laskuri=$laskuri+2 .

For-silmukasta poistuminen

Voit katkaista silmukan tietyissä olosuhteissa käyttämällä break-avainsanaa. Se ei ole osa silmukkaa ja sitä käytetään keskeyttämään for , foreach , while , do-while ja switch -lauseiden suorittaminen. Katsotaanpa, kuinka break-avainsana pysäyttää for-silmukan.

Yksinkertainen esimerkki, jossa tulostetaan kaikki taulukon numerot 100 asti:

$sarja = array(1, 8, 5, 3, 100, 9, 7); for ($i = 0, $count = count($sarja); $i<= $count; $i++) { if (100 == $series[$i]) { break; } echo $series[$i] . " "; }

Tässä katkaisemme silmukan tarkistamalla, onko taulukon elementin arvo yhtä suuri kuin 100.

Voit myös katkaista sisäkkäisen PHP-silmukan taulukon läpi välittämällä syvyyden, esimerkiksi break 1 , break 2 ja niin edelleen. Katso alla oleva esimerkki:

for ($i = 0;; $i++) ( kytkin ($i) ( tapaus 1: echo "Tämä on yksi"; break 1; //Tämä katkaisee vain kytkinkäskyn tapauksen 2: echo "Tämä on kaksi"; break 1 ; // Tämä katkaisee vain kytkinkäskyn tapauksen 3: echo "Tämä on kolme" break 2 // Tämä katkaisee sekä kytkimen että for-silmukan )

Tässä break 1 katkaisee switch-käskyn, mutta break 2 katkaisee nykyisen käskyn sekä pääkäskyn, eli sekä switchin että for .

Jatka käyttöä for-silmukassa

Edellisessä osiossa opimme murtautumaan ulos silmukasta. Mutta entä jos sinun täytyy ohittaa yksi silmukan iteraatio ja palata silmukkaan? PHP:llä on jatka-avainsana tälle.

Muistakaamme esimerkki parittomien lukujen tulostamisesta. Teimme vain, että aloitimme silmukan luvusta 1, lisäsimme laskuria kahdella ja tulostimme tuloksen. Toteutetaan tämä esimerkki käyttämällä jatka:

for ($i = 0; $i< 20; $i++) { if ($i % 2 == 0) { continue; } echo $i . ","; }

Yllä olevassa esimerkissä tarkistamme lausekkeen $i%2 == 0 ja jos se on totta, jatkamme avainsanaa käyttämällä ohitamme loput silmukasta ja palaamme lausekkeeseen3 ($i++) ja sitten lausekkeeseen2 ($i:

Joskus sinun on siirrettävä tietoja tietokantataulukosta taulukkoon PHP:n avulla.

PHP foreach -silmukkaa voidaan käyttää seuraavasti:

foreach($array_name as $value)( //suoritettava koodi)

foreach($array_name as $key =>$value)( // //koodi, joka pitäisi suorittaa)

Esimerkki foreach-silmukan käyttämisestä numeerisen taulukon kanssa

Tässä esimerkissä luomme viiden elementin taulukon numeerisilla arvoilla. PHP foreach -silmukkaa käytetään sitten iteroitaessa tämän taulukon läpi. Foreach-silmukan sisällä käytimme kaikua taulukon arvojen tulostamiseen:

Katso demo ja koodi

Esimerkki taulukon avaimista ja arvoista

Tämä esimerkki kuvaa toista tapaa käyttää PHP foreach -silmukkaa. Tätä varten loimme kolmen elementin assosiatiivisen taulukon. Se sisältää työntekijöiden nimet ( avaimina) ja palkkojen määrä ( arvoina):

Katso demo ja koodi

Esimerkki taulukkoelementin arvon muuttamisesta foreach-silmukassa

Voit myös käyttää PHP-taulukkoa foreach muuttaaksesi taulukon elementtien arvoja. Tämä tehdään käyttämällä "&" ennen "$" arvomuuttujaa. Esimerkiksi:

&$elementin_arvo

Arvo muuttuu. Jotta se olisi selkeämpi, harkitse seuraavaa esimerkkiä.

Tässä esimerkissä loimme viiden elementin numeerisen taulukon. Sen jälkeen käytimme foreach-silmukkaa elementtien arvojen näyttämiseen.

Sitten loimme toisen foreach-silmukan, jossa "& " lisätään ennen $elementin_arvoa. Aaltosulkeiden sisällä annamme uusia arvoja taulukon elementeille.

Jos haluat nähdä eron ennen uusien arvojen antamista ja sen jälkeen, taulukko näytetään print_r()-funktiolla.

Katso demo ja koodi

Mihin PHP foreach -silmukkaa käytetään?

PHP foreach -silmukkaa käytetään työskentelemään taulukon kanssa. Se toistuu jokaisen elementin yli.

Voit myös käyttää for-silmukkaa työskennelläksesi taulukoiden kanssa. Esimerkiksi pituus-ominaisuuden käyttäminen taulukon pituuden saamiseksi ja sen käyttäminen max-operaattorina. Mutta foreach tekee siitä helpompaa, koska se on suunniteltu toimimaan taulukoiden kanssa.

Jos työskentelet MySQL:n kanssa, tämä sykli sopii tähän vielä paremmin. Voit esimerkiksi valita useita rivejä tietokantataulukosta ja välittää ne taulukkoon. Sen jälkeen iteroi kaikki taulukon elementit läpi foreach-silmukan avulla ja suorita jokin toiminto.

Huomaa, että voit käyttää foreach-silmukkaa taulukon tai vain objektin kanssa.

Foreach-silmukan käyttö

On kaksi tapaa käyttää PHP foreach -silmukkaa PHP:ssä. Molemmat on kuvattu alla.

  • Ensimmäisen menetelmän syntaksi on:

foreach($array_name as $value)( echo $value )

Tässä tapauksessa sinun on määritettävä taulukon nimi ja sitten muuttuja $arvo.

Jokaisessa iteraatiossa nykyisen elementin arvo määritetään muuttujalle $value. Kun iteraatio on suoritettu, muuttujalle annetaan seuraavan elementin arvo. Ja niin edelleen, kunnes kaikki taulukon elementit on iteroitu.

  • Toisen menetelmän syntaksi ( PHP foreach avainarvona):

Tämä sopii assosiatiivisille taulukoille, jotka käyttävät avain/arvo-pareja.

Jokaisen iteraation aikana nykyisen elementin arvo määritetään muuttujalle $value_of_element. Lisäksi elementtiavain on määritetty muuttujaan $key_of_element.

Jos työskentelet numeeristen taulukoiden kanssa, voit käyttää ensimmäistä menetelmää, joka ei vaadi elementtiavaimia.

Tämä julkaisu on käännös artikkelista " PHP foreach loop 2 tapaa käyttää sitä", jonka on valmistellut ystävällinen projektitiimi