Cikkek PHP-ben. PHP foreach ciklus: kétféleképpen használhatjuk Beágyazott hurkok php

Gyakran kényelmes, ha bizonyos feltételek fennállása esetén egy hurkot korán meg lehet szakítani. A szünet kezelője biztosítja ezt a lehetőséget. Olyan konstrukciókkal működik, mint: while, do while, for, foreach vagy switch.

A break utasítás tartalmazhat egy opcionális numerikus argumentumot, amely megmondja, hogy hány beágyazott struktúrát kell befejezni. A numerikus argumentum alapértelmezett értéke 1, amely lezárja az aktuális ciklust. Ha egy kapcsoló utasítást használunk egy ciklusban, akkor a break/break 1 csak a switch konstrukcióból lép ki.

\n"; break 1; /* Csak a kapcsolókonstrukcióból lép ki. */ case 10: echo "Iteráció 10; menjünk ki
\n"; break 2; /* Lépjen ki a switch konstrukcióból és a while ciklusból. */ ) ) // egy másik példa erre: ($bar1 = -4; $bar1< 7; $bar1++) { // проверка деления на ноль if ($bar1 == 0) { echo "Выполнение остановлено: деление на ноль невозможно."; break; } echo "50/$bar1 = ",50/$bar1,"
"; } ?>

Természetesen néha jobb, ha egyszerűen kihagyja a ciklus egyik iterációját, ahelyett, hogy befejezné a ciklust. Ebben az esetben ez a folytatás utasítással történik.

folytassa

Ha le szeretné állítani az aktuális kódblokk feldolgozását a ciklus törzsében, és továbblépni a következő iterációra, használhatja a turpināt utasítást. Abban különbözik a break operátortól, hogy nem állítja le a ciklust, hanem egyszerűen a következő iterációra lép.

A folytás operátor a breakhez hasonlóan választható numerikus argumentumot is felvehet, amely azt jelzi, hogy a beágyazott hurkok hány szintjén lesz kihagyva az iteráció többi része. A numerikus argumentum alapértelmezett értéke 1, amely csak az aktuális ciklus hátralévő részét hagyja ki.

"; folytatás; ) echo "50/$bar1 = ",50/$bar1,"
"; } ?>

Kérjük, vegye figyelembe, hogy a ciklus futása közben a $counter változó nulla értéke kimaradt, de a ciklus a következő értékkel folytatódott.

megy

A goto egy feltétel nélküli ugrás operátor. A programkód másik szakaszára való ugrásra szolgál. Azt a helyet, ahová a programban kell mennie, egy címke (egyszerű azonosító), majd kettőspont jelzi. A folytatáshoz a kívánt címkét a goto utasítás után kell elhelyezni.

Egy egyszerű példa a goto utasítás használatára:

A goto utasításnak van néhány korlátozása a használatában. A célcímkének ugyanabban a fájlban és ugyanabban a kontextusban kell lennie, ami azt jelenti, hogy nem ugorhat ki egy függvény vagy metódus határain, és nem ugorhat be egyiken sem. Nem ugorhat bele semmilyen ciklus vagy switch utasításba. De használható ezektől a konstrukcióktól való menekülésre (a ciklusokból és a switch utasításokból). Általában a goto utasítást használják a többszintű break utasítások helyett.

"; ) echo "a ciklus után - a jel előtt"; // az utasítás nem hajtódik végre end: echo "A jelölés után"; ?>

A ciklusok használatának megkezdéséhez tudnia kell, hogy mik ezek, mire képesek, és miért van rájuk szükség a szkriptekben. A ciklus egy kódblokk, amely lehetővé teszi bizonyos műveletek (utasítások) bizonyos számú ismétlését. Egy ciklus utasítássorozatának minden egyes végrehajtását (egy vagy több ismétlést) iterációnak nevezzük.

Minden ciklus két fő részből áll. Az első határozza meg, hogy mikor kell leállítani a ciklus végrehajtását. A második az a tényleges programkód, amely végrehajtja a szükséges műveleteket, és állhat egyetlen utasításból vagy több, kapcsos zárójelekbe zárt utasításból.

A cikluskód addig fut, amíg a ciklus feltételes kifejezése IGAZ értéket nem ad vissza. Annak érdekében, hogy elkerüljük a végtelen ciklust, amely örökké forog, a ciklustörzsben lévő kódnak a feltételes kifejezésnek egy bizonyos ponton FALSE-t kell visszaadnia. Amikor ez megtörténik, a ciklus leáll, és a végrehajtás közvetlenül a ciklus utáni kódsorból folytatódik.

míg hurok

A while ciklus a PHP legegyszerűbb ciklustípusa. A szintaxisa a következő:

Az alábbiakban egy while ciklus példája látható, amelynek törzsét 10-szer hajtják végre:

\n"; $szám++; ) ?>

A ciklus megkezdése előtt a $num változó értéke 1-re van állítva (az érték tetszőleges lehet). Ezt hívják egy számlálóváltozó inicializálásának. A ciklus törzsének minden egyes végrehajtásakor a $num változó értéke eggyel nő a $num++ növekmény használatával. Kifejezés értéke ($num<= 10) проверяется каждый раз перед итерацией цикла. После десяти итераций условное выражение вернет значение FALSE (так как значение переменной $num уже будет не меньше или равно 10) и работа цикла прекратится. В том случае, если условное выражение while будет равно FALSE с самого начала, тело цикла ни разу не будут выполнено.

A legtöbb ciklusnak a $numhoz hasonló számlálóváltozói vannak. Leggyakrabban az i, j és k nevű változók ciklusszámlálóként működnek, bár a programkód érthetőbbé tétele érdekében érdemes a számlálókat leíróbb elnevezéssel ellátni.

do while ciklus

A do while ciklus nagyon hasonlít a while ciklushoz, azzal a különbséggel, hogy a feltételes kifejezést az iteráció végén, nem pedig az elején teszteljük. Ennek a ciklusnak a szintaxisa a következő:

Két különbség van a do while ciklus és a szokásos while ciklus között. Először is, a do while ciklus mindkettőt igényli kulcsszó do (a ciklus elejét jelöli) és a while kulcsszót (a ciklus végének megjelölésére és a feltétel jelzésére). Másodszor, a while ciklustól eltérően a do while ciklus pontosvesszővel végződik. Ez a típusú ciklus akkor hasznos, ha a ciklus törzsét legalább egyszer végre kell hajtani, függetlenül a feltételes kifejezés értékétől.

Próbáljuk meg végrehajtani ugyanazokat a műveleteket, mint az előző példában:

\n"; $szám++; ) while ($num<= 10); ?>

Nagyon gyakran szkriptek írásakor ugyanazt a műveletet többször kell végrehajtania. Erre valók a ciklusok. Hurok a php-ban, mint más nyelvekben, több típusra oszthatók:

  1. Hurok számlálóval
  2. Hurok a while, do-when feltétellel
  3. Hurok a tömbök foreach bejárásához

Például webáruház létrehozásakor a termékek képernyőn való megjelenítése előtt el kell távolítanunk azokat a termékeket, amelyek készletállománya 10 alatt van. Ehhez hurok a tömbön keresztülárukkal és segítséggel feltételes operátor ha ellenőrizzük a raktárban lévő termékek számát, és eltávolítunk a tömbből minden olyan terméket, amelynek raktári értéke 10-nél kisebb.

A ciklushoz PHP-ben

Hurok számlálóval- meghatározott számú alkalommal előadták. Nézzünk egy példát:

"; } ?>

Ebben a példában a ciklus 11-szer kerül végrehajtásra. 0-tól (mivel $i változó = 0) 10-ig ($i óta<= 10). Каждую итерацию $i будет увеличено на 1 ($i++). Чтобы было понятней, сделаем еще один пример:

"; } ?>

A hurok 5-től 9-ig fog futni($i< 10 (в предыдущем примере было <= 10)).

A ciklus fordított sorrendben is végrehajtható:

5; $i--) ( echo "Iterációs szám: $i
"; } ?>

A ciklus 10 és 5 között lesz végrehajtva.

A ciklus egy bizonyos lépéssel is végrehajtható, nézzünk egy példát:

"; } ?>

A ciklus 3 iterációt hajt végre (0, 5, 10) 5-ös lépéssel. Minden iterációnál a ciklusszámláló 5-tel növekszik.

foreach ciklus PHP-ben

foreach hurok- a leggyakoribb ciklus. Szinte minden szkriptben kötelező, különösen, ha a PHP szkript adatbázisokkal működik. Tömbök bejárására szolgál.

Például nézzünk egy kis példát:

$value) ( ​​echo "Kulcs: $kulcs, Érték: $érték
"; } ?>

A szkript futtatásakor a következőket fogod látni:

Kulcs: 0, Érték: piros Kulcs: 1, Érték: kék Kulcs: 2, Érték: zöld Kulcs: szín, Érték: sárga Kulcs: teszt, Érték: design stúdió ox2.ru

While ciklus PHP-ben

míg hurok ciklus végrehajtására szolgál, amíg egy feltétel teljesül. Ha a feltétel soha nem teljesül, a ciklus ciklusba kerül.

Nézzünk egy példát:

"; } ?>

A képernyőn 1 és 19 közötti számokat fogunk látni

Do-while ciklus PHP-ben:

Ciklus do-közben- pontosan ugyanúgy működik, mint míg hurok, az egyetlen különbség az, hogy a feltétel az iteráció után teljesül. Írjunk egy példát:

"; ) while ($i< 20); //Выполняем цикл до те пор, пока $i < 20 ?>

A képernyőn 1 és 20 közötti számokat fogunk látni. Kérjük, vegye figyelembe, hogy az előző példában -val míg hurok 1-től 19-ig volt, mert a feltétel teljesült a ciklus iterációja előtt.

Annak érdekében, hogy megtörni a ciklust létezik szünet funkció, megengedi ki a hurokból, nem számít, hány iteráció van hátra a ciklus végéig.

Egy iteráció kihagyásához és a következő iterációra való továbblépéshez van funkció folytatása.

Weboldalak létrehozásakor szinte mindig ciklusokat használnak, függetlenül az oldal létrehozásának költségétől, a funkcionalitástól és egyéb dolgoktól. Szóval vedd komolyan őket!

Nagyon gyakran szkriptek írásakor ugyanazt a műveletet többször kell végrehajtania. Erre valók a ciklusok. A PHP-ben, akárcsak más nyelvekben, a ciklusok több típusra oszlanak: Loop számlálóval a ciklushoz egy ideig, do-whime feltétel Loop a tömbök bejárásához foreach

OX2 2014-10-02 2014-10-02

Bizonyos esetekben a kívánt eredmény eléréséig kódot kell végrehajtani. Ehhez a PHP while, for és foreach ciklusokat biztosít.

Míg a ciklus szintaxisa PHP-ben

Szintaxis ciklusmíg:

Példa a while ciklus használatára PHP-ben:

A fenti php while ciklus példájában a $i számlálóváltozó először 0-ra inicializálódik.

A while ciklus feltétele $i< 10 . Это означает, что мы проверяем, меньше ли переменная, чем 10.

Minden, ami göndör zárójelbe van zárva, a hurok utasításai (törzs). Mindaddig ismétlődnek, amíg a feltétel igazat ad vissza. A fenti példában $i kerül kinyomtatásra a képernyőre, majd a számlálóváltozót 1-gyel növeljük. Ez azért fontos, mert a hurokfeltétel végül meghiúsul. Ha a ciklusfeltétel mindig teljesül, például azért, mert elfelejtette növelni a $i számlálóváltozót, akkor a szkript belép végtelen hurok. Szerencsére a PHP egy idő után leállítja a szkript végrehajtását.

A hurokfeltételt és a hurok törzsét is tetszés szerint összetetté teheti. Például használd while inside, míg php-t használj php míg a tömbön keresztül iterál ( tömb ), vagy adjon meg egynél több számlálóváltozót:

$perc) ( echo "count1: $count1; count2: $count2
"; $ számláló1 += 2; // Gyorsított kifejezés a $számláló1 számára = $számláló1 + 2; $számláló2 -= 3; // Gyorsított kifejezés a $count2 számára = $count2-3; ) ?>

A példa két változót definiál: $ számláló 1 és $ számláló 2 . Az egyik változó 2-vel növekszik, a másik pedig 3-mal csökken. A while ciklus addig fut, amíg mindkét feltétel teljesül $ count 1< $ max и $ count 2 >$min.

A szünet és a folytatás kulcsszavak hatása egy ciklusra

A parancs segítségével szünet Tud megszakítja a while ciklus végrehajtását PHP. Tegyük fel, hogy egy konkrét felhasználót keresünk. Ezután végignézheti az összes felhasználót egy while cikluson belül. Ha találunk a kívánt felhasználót, majd állítsa le a ciklust a kulcsszó használatával szünet.

Egy egyszerű példa a break kulcsszó használatára:

while ($count< $max) { if ($count == 10) { echo "Останавливаемся на числе 10"; break; } echo "$count,"; $counter += $increment; // увеличивает $count на значение $increment } ?>

Ez a kód a számokat 0-tól $max = 30-ig növekvő sorrendben iterálja, hozzáadva a $növekmény értékét a $count változóhoz, más szóval a 2-es számhoz. De ha a $count változó 10, akkor a következő történik: kilépés a while ciklusból php.

A kulcsszó folytatása nem zárja le a hurkot míg php-ban teljesen , de csak kihagyja a huroktörzs többi részét. Az alábbi példa ezt szemlélteti:

while ($count< $max) { $counter += $increment; // увеличивает $payer на $increment if ($count >= 10 && $count<= 15) { echo "Число между 10 и 15
"; folytasd ;)

echo "$count
"; } ?>

Ez a ciklus 0-val kezdődik, és a számlálót $max-ig növeli. A $counter változó mindig a $növekmény változó értékével növekszik. Vagyis 0, 2, 4 stb. értékeket vesz fel.

Ha a $count változó értéke 10 és 15 között van, akkor a szöveg és az utasítás ki lesz nyomtatva a képernyőre folytassa kihagyja a ciklus többi kifejezését. Ennek eredményeként azt látjuk, hogy a 10, 12 és 14 számok nem kerülnek kiadásra.

do-while ciklus PHP-ben

Kisebb módosítás míg egy do - while ciklus. Ebben az esetben a hurok állapota csak a törzs végrehajtása után kerül ellenőrzésre. Ez azt jelenti, hogy a ciklus törzse legalább egyszer végrehajtásra kerül.

Do-while ciklus szintaxisa:

Tegyük fel, hogy generálni akarunk véletlen szám, aminek vagy 0 és 10, vagy 20 és 30 között kell lennie. A rand () függvény definíciója szerint $ min, $max), véletlenszerűen generálhat egy számot között $minÉs $max:

10 && $random< 20) { $random = rand (0, 30); }

echo "Véletlen számunk: $random"; ?>

php loop használatával csináldmíg, akkor megkaphatja egy kifejezés értékét a $random változó inicializálása nélkül. A ciklus törzse a feltétel tesztelése előtt végrehajtásra kerül. Akkor a fenti példa így nézne ki:

10 && $random< 20);

echo "Véletlen számunk: $random"; ?>

Egy kezdő számára a do-while ciklus kissé zavaró lehet. Ha nem érti teljesen a célját, az nem probléma. A gyakorlatban ritkán használják a Do-while hurkokat.

Nem valószínű, hogy komoly szkriptet tud írni PHP-ben ciklusok használata nélkül. Mi az a ciklus? Ez egy speciális típusú vezérlőstruktúra, amely lehetővé teszi ugyanazt a kódot ismételten (és akár vég nélkül) végrehajtani. A következő ciklusokat támogatja a PHP:

Az első három ciklus az, amelyet a legtöbb programozási nyelvben valószínűleg látni fog. A ciklusok a körülményektől függően megszakíthatók vagy folytathatók (a ciklus törzsének végrehajtása nélkül folytassa a következő iterációval). Nézzük meg közelebbről az egyes ciklusokat.

hurokhoz

A for ciklus szintaxisa a következő.

For(inicializálás; feltétel; parancsok_utáni_iteráció) (loop_body; )

Az inicializálási blokk mindig inicializálja a számlálót, valamint a többi változót (ha szükséges). A feltételblokk megadja, hogy a ciklus mely pontján álljon le. A ciklus minden iterációja után végrehajtott parancsblokkban általában változik a számláló értéke, valamint az egyéb változók (ha szükséges).

// Értékek tömbje $array = array("Alma", "burgonya", "görögdinnye", "virág", "víz", "higany", "oxigén", "búza", "oroszország", "moszkva" ", "Zuhany"); // A ciklus feltétele így hangzik: amíg a számláló el nem éri a tömbelemek // számának megfelelő értéket, a ciklus törzse végrehajtódik for($i = 0; $i< count($array); $i++) { print "
".($i + 1)". ".$i].." /* A ciklus eredménye a következő lesz: 1. burgonya 4. virág Oxigén 8. Búza 10. Moszkva.

Mivel a $i számláló nulláról indult, minden iterációnál hozzáadtunk egyet az értékéhez, hogy ismerősebb legyen a lista. Minden iteráció után a számláló értéke eggyel nőtt, és amikor elérte a 11-et, a ciklus leállt. Most vessünk egy pillantást a do-while ciklusra.

do-while hurok

A do-while hurok annyiban különbözik, hogy utólagos feltétellel működik. Ez azt jelenti, hogy a ciklus törzsében található kód legalább egyszer végrehajtásra kerül. A ciklus szintaxisa a következő:

Do (loop_body; ) while(feltétel);

Ezt a hurkot meglehetősen ritkán használják a webes programozásban, de szükség lehet rá a szkriptekben.

// Számunkra már ismerős tömb $array = array("Alma", "burgonya", "görögdinnye", "virág", "víz", "higany", "oxigén", "búza", "oroszország", "moszkva" " , "Eső"); // A ciklus indítása $i = 1; do (nyomtassa)
".$i." ".$tömb[($i - 1)]." ) while($i++< count($array)); /* Результат работы цикла будет таким: 1. Яблоко. 2. Картошка. 3. Арбуз. 4. Цветок. 5. Вода. 6. Ртуть. 7. Кислород. 8. Пшеница. 9. Россия. 10. Москва. 11. Ливень. */

Figyeljük meg a különbséget aközött, amit ebben a ciklusban nyomtatunk és a for ciklusban. Mivel a do-while ciklus törzsében található kód legalább egyszer lefut, a számláló kezdeti értékét nullára állítottuk. Hogyan működik egy ciklus... kód végrehajtásra kerül, majd egy feltétel tesztelésre kerül. Az első iterációnál a számláló értéke 1. Az iteráció után az egyik 11-nél (az elemek száma) kisebbnek bizonyult. Az utolsó iterációnál a számláló értéke 11 volt, és ez semmiképpen sem kisebb 11-nél. A ciklus leállt. A while ciklus nagyon hasonló a do-while-hez.

míg hurok

A while ciklus előfeltételes. Csak akkor kerül végrehajtásra, ha a feltétele igaz. Vagyis előfordulhat, hogy a while ciklus egyáltalán nem hajtható végre. A szintaxisa a következő:

While(feltétel) (loop_body; )

A for ciklus mellett nagyon gyakran használják a while ciklust is.

$array = array("Alma", "burgonya", "görögdinnye", "virág", "víz", "higany", "oxigén", "búza", "oroszország", "moszkva", "eső"); $i = 1; while($i++<= count($array)) { print "
".$i." ".$tömb[($i - 1)]."."; ) /* A hurok eredménye a következő lesz: 1. Alma. 2. Burgonya. 3. Görögdinnye. 4. Virág. 5. Víz. 6. Higany 8. Búza 11. Eső.

A while ciklus a legegyszerűbb és leginkább érthető a kezdő fejlesztők számára.

foreach hurok

A foreach ciklus nem olyan, mint a fentiek mindegyike. PHP4-ben jelent meg, és úgy tervezték, hogy tömbökön keresztül iteráljon. A fejlesztőnek ehhez nem kell semmit kitalálnia. Minden egyszerű és egyszerű:

/** * A foreach ciklust úgy kell érteni, mint "mindegyikhez".

* A ciklus által feldolgozott tömb egy olyan változóhoz kerül, amely * csak a ciklus törzsében érhető el. Ha szükséges, elérheti a * tömbbillentyűket is.

*/ foreach(tömb mint tömb_elem) (hurok_test; ) foreach(tömb mint tömb_kulcs => tömb_elem) (loop_body; )
".$i." ".$v."."; $i++; ) /* Ezt a váratlan eredményt kapjuk: 1. gyümölcs. 2. zöldség. 3. bogyó. 4. növény. 5. folyadék. 6. fém. 7. gáz. 8 9. anyaországunk 10. anyaországunk fővárosa */ // Most csináljuk másként foreach($array as $k => $v.)
".$i." ".$k." a ".$v."; $i++; a víz 6. A búza a mi anyaországunk.

Érted, hogyan működik ez a ciklus? Ha nem, akkor az anyaghoz fűzött megjegyzésekben tehet fel kérdést.

Konstrukciókat bármilyen ciklusban használhat szünet vagy folytassa. Néha nincs értelme folytatni a ciklust, vagy tovább kell lépnie a következő iterációra.

$array = array("Alma" => "gyümölcs", "burgonya" => "zöldség", "görögdinnye" => "bogyó", "virág" => "növény", "víz" => "folyadék", „Mercury” => „fém”, „Oxigén” => „gáz”, „Búza” => „kenyér”, „Oroszország” => „Szülőföldünk”, „Moszkva” => „Szülőföldünk fővárosa”, "Rain " => "popados"); $i = 1; // Példa arra, hogyan működik egy ciklus a turpināt foreach($array as $k => $v) konstrukcióval ( if($k != "Oxygen") turpināt; print "
".$i." ".$k." ".$v."; $i++ ) /* Az eredmény így lesz tömb mint $k = > $v) ( if($k == "Oxigén") break; print "
".$i." ".$k." a „.$i++”; 5. A víz folyadék 6. A higany fém.