Petlje u PHP-u. PHP foreach petlja: dva načina da se koristi Php dvostruko računa u petlji

Malo je vjerovatno da možete napisati ozbiljnu skriptu u PHP-u bez korištenja petlji. Šta je ciklus? Ovo je posebna vrsta kontrolne strukture koja vam omogućava da više puta (pa čak i beskonačno) izvršavate isti kod. PHP podržava sljedeće petlje:

Prve tri petlje će se vjerovatno naći u većini programskih jezika. Petlje, u zavisnosti od uslova, mogu se prekinuti ili nastaviti (idite na sledeću iteraciju bez izvršavanja tela petlje). Pogledajmo detaljnije svaki od ciklusa.

za petlju

Sintaksa za petlju for je sljedeća.

Za(inicijalizacija; stanje; naredbe_nakon_iteracije) (tijelo_petlje; )

U bloku inicijalizacije uvijek se inicijalizira brojač, kao i ostale varijable (ako je potrebno). Blok uvjeta pokazuje u kojoj točki petlja treba biti prekinuta. U bloku naredbi koje se izvršavaju nakon svakog prolaska petlje obično se mijenja vrijednost brojača, kao i druge varijable (ako je potrebno).

// Niz vrijednosti $array = array("Jabuka", "Krompir", "Lubenica", "Cvijet", "Voda", "Merkur", "Kiseonik", "Pšenica", "Rusija", "Moskva ", " Tuš"); // Uslov petlje zvuči ovako: sve dok brojač ne dostigne vrijednost jednaku broju // elemenata niza, tijelo petlje se izvršava za ($i = 0; $i< count($array); $i++) { print "
".($i + 1).". ".$array[$i]."."; ) /* Rezultat petlje će biti: 1. Jabuka. 2. Krompir. 3. Lubenica. 4. Cvijet. 5. Voda. 6. Merkur. 7. Kiseonik 8. Pšenica 9. Rusija 10. Moskva 11. Pljusak */

Pošto je brojač $i počeo od nule, sa svakom iteracijom dodavali smo jedan njegovoj vrijednosti kako bi lista izgledala poznatije. Nakon svake iteracije, vrijednost brojača se povećavala za jedan, a kada je dostigla 11, petlja se zaustavlja. Sada pogledajmo do-while petlju.

uradi-while petlja

Do-while petlja se razlikuje po tome što radi na post-uslovu. To znači da će kod zatvoren u tijelu petlje biti izvršen najmanje jednom. Sintaksa petlje je:

Uradi (loop_body;) while(uslov);

Ova petlja se rijetko koristi u web programiranju, ali će vam možda trebati u vašim skriptama.

// Niz koji nam je već poznat $array = array("Jabuka", "Krompir", "Lubenica", "Cvijet", "Voda", "Merkur", "Kiseonik", "Pšenica", "Rusija", " Moskva" , "Pljusak"); // Pokreni petlju $i = 1; uradi (štampaj"
".$i.". ".$array[($i - 1)]."."; ) while($i++< count($array)); /* Результат работы цикла будет таким: 1. Яблоко. 2. Картошка. 3. Арбуз. 4. Цветок. 5. Вода. 6. Ртуть. 7. Кислород. 8. Пшеница. 9. Россия. 10. Москва. 11. Ливень. */

Obratite pažnju na razliku između onoga što prikazujemo u ovoj petlji i for petlje. Pošto se kod u tijelu do-while petlje izvršava najmanje jednom, početna vrijednost brojača je postavljena na nulu. Kako petlja radi... kod se izvršava, zatim se provjerava uvjet. Na prvoj iteraciji brojač je imao vrijednost 1. Nakon iteracije, jedinica se pokazala manjom od 11 (broj elemenata). Na posljednjoj iteraciji brojač je imao vrijednost 11, što nije manje od 11. Petlja je stala. Do-while je vrlo sličan while petlji.

while petlja

Dok petlja je preduslovna. Izvršiće se samo kada je njegov uslov istinit. To jest, while petlja se možda uopće neće izvršiti. Njegova sintaksa je:

Dok(uvjet) (loop_body;)

Uz for petlju, while petlja se koristi vrlo često.

$array = array("Jabuka", "Krompir", "Lubenica", "Cvijet", "Voda", "Merkur", "Kiseonik", "Pšenica", "Rusija", "Moskva", "Tuš"); $i = 1; while($i++<= count($array)) { print "
".$i.". ".$array[($i - 1)]."."; ) /* Rezultat petlje će biti: 1. Jabuka. 2. Krompir. 3. Lubenica. 4. Cvijet. 5. Voda. 6. Merkur 7. Kiseonik 8. Pšenica 9. Rusija 10. Moskva 11. Pljusak */

Dok petlja za početnike je najjednostavnija i najrazumljivija.

foreach petlja

Foreach petlja je drugačija od bilo koje od gore navedenih. Pojavio se u PHP4, dizajniran za ponavljanje nizova. Programer ne mora ništa izmišljati za ovo. Sve je lako i jednostavno:

/** * Foreach petlju treba shvatiti kao "za svaki od". * Niz koji obrađuje petlja prosljeđuje se varijabli koja je * dostupna samo unutar tijela petlje. Ako želite, možete pogledati * i tipke niza. */ foreach(niz kao element_niza) (loop_body; ) foreach(niz kao array_key => array_element) (loop_body;)

Foreach petlja radi drugačije od for , while , i do-while petlje. Stoga je neiskusnim programerima prilično teško razumjeti šta se tačno može (pa čak i treba) učiniti s njim.

// Promijenimo niz koji već poznajemo. Neka bude asocijativno. $array = array("Jabuka" => "voće", "Krompir" => "povrće", "Lubenica" => "bobice", "Cvijet" => "biljka", "Voda" => "tečnost", "Merkur" => "metal", "Oxygen" => "gas", "Pšenica" => "hleb", "Rusija" => "naša domovina", "Moskva" => "glavni grad naše domovine", "Tuš " => "popados"); $i = 1; // Ovo možemo uraditi foreach($array kao $v) ( print "
".$i.". ".$v."; $i++; ) /* Dobijte sljedeći neočekivani rezultat: 1. voće. 2. povrće. 3. bobičasto voće. 4. biljka. 5. tekućina. 6. metal. 7. plin. 8. kruh 9. naša domovina 10. glavni grad naše domovine 11. popados */ // A sada uradimo to drugačije foreach($array as $k => $v) ( print "
".$i.". ".$k." je ".$v."; $i++; ) /* Sada će rezultat biti 1. Jabuka je voće. 2. Krompir je povrće. 3. Lubenica je bobica. 4. Cvijet je biljka. 5 Voda je tečnost 6 Merkur je metal 7 Kiseonik je gas 8 Pšenica je hleb 9 Rusija je naša domovina 10 Moskva je glavni grad naše domovine 11 Kiša je kiša */

Razumijete li kako ovaj ciklus funkcionira? Ako ne, možete postaviti pitanje u komentarima na materijal.

U bilo kojem ciklusu možete koristiti konstrukcije break ili nastaviti. Ponekad nema smisla nastaviti petlju ili morate prijeći na sljedeću iteraciju.

$array = array("Jabuka" => "voće", "Krompir" => "povrće", "Lubenica" => "bobice", "Cvijet" => "biljka", "Voda" => "tečnost", "Merkur" => "metal", "Oxygen" => "gas", "Pšenica" => "hleb", "Rusija" => "naša domovina", "Moskva" => "glavni grad naše domovine", "Tuš " => "popados"); $i = 1; // Primjer kako petlja radi sa continue foreach($array as $k => $v) ( if($k != "Oxygen") continue; print "
".$i.". ".$k." je ".$v."; $i++; ) /* Rezultat će biti 1. Kiseonik je gas. */ $i = 1; // Primer kako petlja radi sa prekidom foreach($array kao $ k = > $v) ( if($k == "Oxygen") prekid; ispis "
".$i.". ".$k." je ".$v."; $i++; ) /* Rezultat će biti 1. Jabuka je voće. 2. Krompir je povrće. 3. Lubenica je bobica. 4. Cvijet je biljka. 5. Voda je tečnost 6. Živa je metal */

Napomena: aktivira se adaptivna verzija stranice koja se automatski prilagođava maloj veličini vašeg pretraživača i skriva neke detalje stranice radi lakšeg čitanja. Uživajte u gledanju!

Pozdrav dragi čitaoci i redovni pretplatnici! Vrijeme je da nastavimo ciklus članaka o PHP-u i danas ćemo proučavati tako osnovnu i ujedno vrlo važnu stvar, poput ciklusa. Šta prvo trebate znati o ciklusima? A činjenica da se koriste svuda i svuda, kao i šabloni za Joomla, VirtueMart, Wordpress, OpenCart i bilo koji drugi CMS nije izuzetak.

Šta je ciklus? Ciklus je ponovljeno ponavljanje istog dijela koda. Koliko ponavljanja treba da uradite zavisi od brojača ciklusa koji sami kreiramo i možemo da ga kontrolišemo. Ovo je vrlo zgodno, na primjer, kada trebamo crtati proizvode u kategoriji online trgovine, prikazati postove na blogu, prikazati komentare na članak ili proizvod, svi meniji u CMS-u (site engines) su također napravljeni pomoću ciklusa. Općenito, petlje se koriste vrlo često.

Ali prije nego što pređemo na same petlje, prvo se moramo pozabaviti takvom stvari kao što su izjave prirast i dekrement.

Operator ++ (inkrement) povećava vrijednost varijable za jedan, dok operator -- (dekrement) smanjuje vrijednost varijable za jedan. Vrlo su zgodni za korištenje u ciklusima kao brojač i općenito u programiranju. Tu je i PRE inkrement/dekrement i POST povećanje/dekrement:

PRE inkrement/dekrement ++$a Povećava $a za jedan i vraća vrijednost $a. --$a Smanjuje $a za jedan i vraća vrijednost $a. POST inkrement/dekrement $a++ Vraća vrijednost $a i zatim povećava $a za jedan. $a-- Vraća vrijednost $a i zatim smanjuje $a za jedan.

Na primjer:

$a = 1; echo "Izlazni broj: " . $a++; // Broj izlaza: 1 echo " Broj izlaza: " . $a; // Broj izlaza: 2 echo "Broj izlaza: $a"; $a += 1; // isto kao i prvi red$a = 1; echo "Izlazni broj: " . ++$a; // Broj izlaza: 2 echo "Broj izlaza: " . $a; // Broj izlaza: 2 $a += 1; echo "Izlazni broj: $a"; // isto kao u prvom redu ovog bloka

za petlju

for (dio A; dio B; dio C)( // Bilo koji kod, koliko god redaka želite; )

For petlja se sastoji od 3 dijela i samog tijela. dio A samo radi ono što kaže, po pravilu se u 90% slučajeva tu kreira brojač petlje. Dio B- ovo nam je, grubo rečeno, već poznato ako, odnosno test za istinu (tačno?). Ako je uslov tačan, to jest istinito, onda PHP ulazi u petlju i nastavlja da je izvršava. Dio C- isto kao dio A, obično u dijelu C radimo neku vrstu transformacije sa brojačem. Na primjer:

"; ) echo "IZLAZITE IZ PETLJE i idite dalje kroz kod..."; ?>

Sada o algoritmu for petlje. Prva stvar koju PHP vidi kada vidi je dio A i izvršava ga samo jednom (pogledajte sliku ispod). PHP zatim prelazi na dio B i provjerava da li je istinito ili netačno. Ako je istina, onda izvršava tijelo petlje i tek nakon toga ide na dio C. Nakon toga, PHP se vraća na dio B i provjerava da li je još uvijek istinito ili više nema. Ako ne, onda se petlja završava, ako je odgovor da, onda se nastavlja sve dok dio B nije lažan.

Rezultat prethodnog primjera:

while petlja

while (dio B)( // Bilo koji kod, koliko god redaka želite; )

Kao što vidite, nema dijela A i dijela C, ostaje samo uvjet iz for petlje, odnosno dijela B. Ako trebamo koristiti brojač, onda ga moramo smjestiti unutar while petlje, među ostalim koda, ovo će biti dio C. I kreiranje brojača je potrebno prije početka konstrukcije while:

dio A; while (dio B)( // Bilo koji kod, koliko god redaka želite; dio C; )

Promijenimo prethodnu for petlju u while petlju:

"; $i++; ) echo "IZLAZITE IZ PETLJE i idite dalje kroz kod..."; ?>

Rezultat će biti potpuno isti. Šta koristiti: for petlju ili while petlju je stvar ukusa, vidite šta vam je zgodnije i logičnije, nema razlike.

do...while petlja

Manje uobičajen od svih vrsta ciklusa. To je u suštini obrnuto vrijeme. Njegov trik je u tome što PHP barem jednom (prvi), ali će svakako ući u tijelo do ... while petlje, jer u ovoj petlji uslov na kraju:

dio A; do( // Bilo koji kod, koliko god linija želite; Dio C; )while(Dio B);

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

Važno je shvatiti da u sva tri tipa ciklusa nema obaveznih dijelova.

Primjer for petlje bez dijela A i dijela C:

For(;$i > 8;)( // vaš kod)

Primjer for petlje bez sva tri dijela:

For(;;)( // klasična beskonačna petlja)

To jest, sve tačke i zareze ostaju u for petlji, ovo je sintaksa!

Endless Loops

Beskonačna petlja je greška programera u kojoj se stranica nikada neće moći učitati do kraja, budući da će uvjet petlje (dio B) uvijek biti istinit. Na primjer:

"; $i++; )while($i != 0); echo "IZLAZITE IZ PETLJE i idite dalje kroz kod..."; ?>

rezultat:

Prikazao sam samo dio, jer sve ne stane na ekran. Ovo je način na koji će vaš pretraživač i server vašeg sajta beskrajno patiti sve dok se pretraživač ne sruši nakon 30 sekundi.To je zato što u gornjem primjeru, varijabla $i nikada neće biti jednaka nuli, u početku je jednaka 1 i stalno se povećava.

Odnosno, programer je bio nepažljiv kada je smislio takav uslov.

Upravljanje ciklusom

break izjava. Postoje situacije kada nam nije potrebna petlja za reprodukciju svih iteracija (ponavljanja). Na primjer, u nekom određenom trenutku želimo ga prekinuti i nastaviti izvršavanje ispod koda:

"; if ($i === 5) break; // izlazi iz petlje ako je $i jednako 5 $i++; ) echo "Mogu brojati samo do 5:("; ?>

rezultat:

U gornjem primjeru, čim smo došli do pet, PHP je izašao iz petlje, inače bi brojao do 7.

nastavak izjave takođe prekida izvršenje petlje, ali za razliku od break, continue ne izlazi iz petlje, već vraća PHP interpreter nazad u uslov (u deo B). primjer:

"; ) echo "Nešto ste propustili?"; ?>

rezultat:

Upravo smo preskočili 5 jer PHP nije došao do eha.

Petlja može biti ugniježđena unutar petlje. U tom slučaju, naredbe continue i break pokrivaju samo jedan ciklus, onaj u kojem se nalaze. Drugim riječima, oni su bačeni na jedan nivo, a ne kroz sve. primjer:

Ali mi sami možemo izabrati preko koliko nivoa ćemo preskočiti:

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

rezultat:

Naravno, u ovom slučaju, ne možemo postaviti broj veći od naših ugniježđenih petlji.

foreach petlja

Na kraju, ali ne i najmanje važno, foreach petlja je najvažnija. korišteno samo za nabrajanje i objekte (prerano je učiti ih). Primjer sintakse:

"; } ?>

rezultat:

Ovo je bila kratka foreach konstrukcija, ali ima i proširenu verziju, koja osim vrijednosti ćelija niza prikazuje i nazive ćelija (ključeva):

$value) (echo "U odjeljku " . $ključ ." postoji članak pod naslovom: ". $vrijednost ."
"; } ?>

rezultat:

Skrećem vam pažnju na činjenicu da varijable možemo imenovati kako god želimo, čak i $key i $value, čak i $xxx i $yyy.

Ako je niz, onda koristimo samo foreach petlju i nikakve druge. Upravo se ovaj ciklus koristi svuda u VirtueMartu, pa i svuda.

Posljednje ažurirano: 1.11.2015

PHP, kao i drugi programski jezici, koristi petlje za izvođenje radnji koje se ponavljaju. PHP ima sljedeće tipove petlji:

za petlju

Petlja for ima sljedeću formalnu definiciju:

Za ([inicijalizacija brojača]; [uvjet]; [promjena brojača]) ( // akcije)

Razmotrite standard za petlju:

"; } ?>

Prvi dio deklaracije petlje - $i = 1 - kreira i inicijalizira brojač - varijablu $i. I prije nego što se petlja izvrši, njena vrijednost će biti jednaka 1. U suštini, ovo je isto kao deklariranje varijable.

Drugi dio je uvjet pod kojim će se petlja izvršiti. U ovom slučaju, petlja će se izvoditi sve dok $i ne dostigne 10.

Treći dio je povećanje brojača za jedan. Opet, ne treba da povećavamo za jedan. Možete smanjiti: $i--.

Kao rezultat, blok petlje će se pokrenuti 9 puta dok vrijednost $i ne postane jednaka 10. I svaki put će se ova vrijednost povećati za 1. Svako zasebno ponavljanje petlje naziva se iteracija. Dakle, u ovom slučaju će se dogoditi 9 iteracija.

while petlja

Dok petlja provjerava istinitost nekog uvjeta, a ako je uvjet istinit, tada se izvršava blok izraza petlje:

"; $counter++; ) ?>

Ako postoji samo jedna izjava u bloku while, tada se vitičaste zagrade bloka mogu izostaviti:

"; ?>

do..while petlja

Do..while petlja je slična petlji while, samo što se sada izvršava blok petlje i tek onda se provjerava uvjet. To jest, čak i ako je uslov netačan, blok petlje će se izvršiti najmanje jednom:

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

nastavak i prekid izjava

Ponekad se javlja situacija kada želite da izađete iz petlje bez čekanja da se završi. U ovom slučaju možemo koristiti naredbu break:

80) ( break; ) echo "Kvadrat od $i je $rezultat
"; } ?>

A ako se iznenada rezultat operacije pokaže više od 80, tada petlja izlazi.

Naredba nastavljanja se također koristi za kontrolu petlji. Prelazi na sljedeću iteraciju petlje:

"; } ?>

Kada se program izvrši, kada vrijednost $i postane jednaka 5, doći će do prijelaza na sljedeću iteraciju, a svi ostali izrazi koji slijede nakon naredbe continue neće biti izvršeni.

Petlja for je jedna od najčešće korištenih petlji u bilo kojem programskom jeziku. U ovom članku ćemo detaljnije pogledati PHP for petlju.

for naredba petlje u PHP-u

Petlja for u PHP-u izvršava blok koda određeni broj puta na osnovu broja. U ovom slučaju, broj puta koji se blok koda mora izvršiti se određuje unaprijed prije ulaska u tijelo petlje.

for je jedan od najsloženijih tipova petlje. U PHP-u, for petlja se ponaša slično kao C. Slijedeća je struktura sintakse:

for(izraz1;izraz2;izraz3) izjava;

U gornjem opisu ključna riječ za tačke na petlju. Zagrade definiraju izraze, a zatim i naredbu koja će se izvršiti.

Kako radi for petlja u PHP-u?

Da bismo razumjeli kako funkcionira for petlja, moramo razumjeti ova tri izraza. Izraz: izraz1 je prvi, koji se izvršava samo jednom prije ulaska u petlju. Izvodi se bezuslovno. To znači da će prvi put prije ulaska u petlju, izraz biti izvršen.

Izraz1 se naziva inicijalizacijskim izrazom jer se koristi za inicijalizaciju brojača koji se koristi u izrazu2 i izrazu3.

izraz2( provjera stanja) se provjerava kako bi se utvrdilo da li uvjet dopušta da se naredba izvrši ili ne. Prvi put se pokreće nakon izraza1, a zatim prije ulaska u petlju.

Obično izraz2 sadrži uslovni izraz za provjeru da li uvjet vraća true ili false. Ako uvjet vrati true , tada će se izvršiti naredba napisana u petlji.

Izraz3 se izvršava na kraju svake iteracije nakon izraza petlje. Programeri ga obično nazivaju inkrementnim izrazom. Oni koriste ovaj izraz za povećanje vrijednosti brojača koji je inicijaliziran u izrazu1 i raščlanjen u izrazu2.

Sva tri izraza su opciona. Takođe možete kreirati PHP petlju kao u nastavku:

for(;;) izjava;

for(;izraz2;izraz3) izraz;

Ako imamo više linija u for petlji, koristite vitičaste zagrade kao što je prikazano u nastavku:

for(izraz1;izraz2;izraz3)(naredba1; naredba2; izjava3; )

za dijagram toka petlje

U prvom koraku izvršava se izraz1. Ako pažljivo pogledate dijagram toka, vidjet ćete da nema uslova za izražavanje1. izraz1 je kao tok programa koji se izvršava.

U sljedećem koraku, odmah nakon izraza1, izvršava se izraz2. Provjerava da li je uvjet petlje istinit. Ako je uslov tačan, onda će petlja nastaviti da se izvodi, inače će nit izaći iz petlje.

Ako izraz2 vrati true , tada će treći korak izvršiti naredbu napisanu u for petlji. Nakon toga, treći izraz izraz3 će se izvršiti.

Nakon što se izraz3 izvrši, nit ponovo provjerava izraz2, a petlja se nastavlja sve dok izraz2 ne vrati false.

Jednostavan primjer for petlje u PHP-u

Razmotrite slučaj kada trebate prikazati brojeve od 1 do 10 odvojene zarezima. Ispod je kod:

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

Ili sa vitičastom zagradom:

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

Izraz $i=1 je izraz1, koji se bezuslovno procjenjuje. Koristimo izraz1 da inicijaliziramo varijablu na $i=1.

Izraz2 je $i izraz:

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

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

Složeni izraz u for petlji

Možete napisati tri izraza u for petlju. Možemo napisati više naredbi u svaki izraz u for petlji. Operateri moraju biti odvojeni zarezom.

Razmotrimo primjer prethodnog koda za izlaz broja od 1 do 10. Sa više operatora u izrazu, možete napisati kod u nastavku:

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

Ovdje je izraz3 print $i.',', $i++, koji kombinuje dva izraza, jedan je print $i. ‘,’ a drugi je $ i++ .

Iznad je primjer gdje smo koristili više operatora u izrazu3. Ali također je moguće koristiti više operatora u bilo kojem izrazu. Na primjer:

Slično, možete ispisati sve neparne brojeve manje od 10 sa sljedećim kodom:

Niz i for petlja u PHP-u

Sa PHP petljom for, možete iterirati niz niz. Na primjer, imamo niz koji sadrži imena različitih ljudi. Moramo prikazati sva imena:

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

Također možete koristiti višedimenzionalni niz u for petlji:

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

Ugniježđena for petlja

Možete koristiti ugniježđenu for petlju u PHP-u. primjer:

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

Imamo višedimenzionalni niz i koristimo dvije PHP for petlje za prikaz vrijednosti njegovih elemenata.

Kada koristite ugniježđenu petlju, možete koristiti roditeljski izraz for petlje u djetetu. Na primjer:

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

Gornji program je jedan od najpopularnijih za ispis znaka * u obliku pravokutnog trokuta.

Povećanje u for petlji

U skoro svakom od gornjih primjera koristili smo izraz3, koji je posljednji izraz, kao instrukciju za povećanje. Također, često smo povećavali vrijednost za jedan u svim primjerima, poput $i++ ili $j++ i tako dalje. Ali možemo povećati brojač prema našim zahtjevima. Na primjer, da ispišete sve neparne brojeve od 1 do 15, možete inicijalizirati petlju na 1 i ponoviti do 15, povećavajući brojač za 2:

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

Izlaz gornjeg koda će biti " 1,3,5,7,9,11,13,15 ". Ovdje povećavamo varijablu brojača za +2 koristeći izraz $counter=$counter+2.

Izađite iz for petlje

Možete prekinuti petlju pod određenim uslovom koristeći ključnu riječ break. Nije dio petlje i koristi se za prekid izvršavanja for, foreach, while, do-while i switch naredbi. Hajde da vidimo kako ključna reč break zaustavlja for petlju.

Jednostavan primjer gdje izlazimo sve brojeve u nizu do 100:

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

Ovdje prekidamo petlju provjeravanjem da li je vrijednost elementa niza jednaka 100.

Također možete prekinuti ugniježđenu PHP petlju kroz niz prolaskom u dubinu, kao što je break 1, break 2, itd. Pogledajte primjer u nastavku:

for ($i = 0;; $i++) ( switch ($i) (slučaj 1: echo "Ovo je jedan"; prekid 1; //Ovo će prekinuti samo naredbu switch case 2: echo "Ovo je dva "; break 1 ; // Ovo će opet prekinuti samo naredbu switch slučaj 3: echo "Ovo je tri "; break 2; //Ovo će prekinuti i prekidač i for petlju) )

Ovdje će break 1 prekinuti naredbu switch, ali break 2 će prekinuti trenutnu naredbu kao i naredbu roditelja, tj. i switch i for .

Korištenje continue u for petlji

U prethodnom odeljku naučili smo kako da izađemo iz petlje. Ali šta ako želite da preskočite jednu iteraciju petlje i vratite se nazad u petlju? Da bi to uradio, PHP ima ključnu reč continue.

Prisjetite se primjera prikazivanja neparnih brojeva. Sve što smo uradili je da započnemo petlju na 1, povećamo brojač za 2 i damo rezultat. Hajde da implementiramo ovaj primjer koristeći continue :

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

U gornjem primjeru testiramo izraz $i%2 == 0 i ako je tačan koristeći ključnu riječ continue, preskačemo ostatak petlje i vraćamo se na izraz3 ($i++), a zatim na izraz2 ($i :

Ponekad trebate prenijeti podatke iz tabele baze podataka u niz koristeći PHP.

PHP foreach petlja se može koristiti ovako:

foreach($array_name kao $value)( //kod koji treba izvršiti)

foreach($array_name kao $key =>$value)( // //kod za izvršenje)

Primjer korištenja foreach petlje s numeričkim nizom

U ovom primjeru kreirat ćemo niz od pet elemenata s numeričkim vrijednostima. PHP foreach petlja će se tada koristiti za iteraciju kroz taj niz. Unutar foreach petlje koristili smo echo da ispišemo vrijednosti niza:

Pogledajte demo i kod

Primjer s nizom ključeva i vrijednosti

Ovaj primjer opisuje drugi način korištenja PHP foreach petlje. Da bismo to učinili, kreirali smo asocijativni niz od tri elementa. Sadrži imena zaposlenih ( kao ključevi) i plate ( kao vrednosti):

Pogledajte demo i kod

Primjer promjene vrijednosti elementa niza u foreach petlji

Također možete koristiti PHP niz foreach za promjenu vrijednosti elemenata niza. Ovo se radi korištenjem "&" prije "$" za varijablu vrijednosti. Na primjer:

&$vrijednost_elementa

Vrijednost će biti promijenjena. Da bi bilo jasnije, razmotrite sljedeći primjer.

U ovom primjeru kreirali smo numerički niz sa pet elemenata. Nakon toga, foreach petlja je korištena za prikaz vrijednosti elemenata.

Zatim smo kreirali još jednu foreach petlju, gdje se "&" dodaje prije $value_of_element. Unutar vitičastih zagrada, elementima niza dodjeljujemo nove vrijednosti.

Da biste vidjeli razliku prije i nakon dodjeljivanja novih vrijednosti, niz se prikazuje pomoću funkcije print_r().

Pogledajte demo i kod

Za šta se koristi PHP foreach petlja?

PHP foreach petlja se koristi za rad na nizu. Iterira preko svakog svog elementa.

Također možete koristiti for petlju za rad s nizovima. Na primjer, korištenje svojstva dužine za dobivanje dužine niza, a zatim primjena toga kao max operatora. Ali foreach to olakšava jer je dizajniran za rad s nizovima.

Ako radite sa MySQL, onda je ovaj ciklus još pogodniji za ovo. Na primjer, možete odabrati više redova iz tablice baze podataka i proslijediti ih u niz. Nakon toga, koristeći foreach petlju, iterirajte kroz sve elemente niza, izvodeći neku radnju.

Imajte na umu da možete koristiti foreach petlju sa nizom ili samo sa objektom.

Korištenje foreach petlje

U PHP-u postoje dva načina za korištenje PHP foreach petlje. Oba su opisana u nastavku.

  • Sintaksa za prvu metodu upotrebe je:

foreach($array_name kao $vrijednost)( echo $value)

U ovom slučaju, morate navesti ime niza, a zatim varijablu $value.

Za svaku iteraciju, vrijednost trenutnog elementa se dodjeljuje varijabli $value. Nakon što je iteracija završena, varijabli se dodjeljuje vrijednost sljedećeg elementa. I tako sve dok se svi elementi niza ne ponove.

  • Sintaksa druge metode ( PHP foreach kao ključna vrijednost):

Ovo je pogodno za asocijativne nizove koji koriste parove ključ/vrijednost.

Tokom svake iteracije, vrijednost trenutnog elementa će biti dodijeljena varijabli $value_of_element. Dodatno, ključ elementa je dodijeljen varijabli $key_of_element.

Ako radite sa numeričkim nizovima, možete koristiti prvi metod, koji ne zahtijeva ključeve elemenata.

Ova publikacija je prijevod članka " PHP foreach petlja 2 načina da ga koristite» pripremio prijateljski projektni tim