Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Ciklet. Loops në PHP Foreach ndërsa për sythe në PHP

Sintaksa për një lak for është si më poshtë:

Ky qark përbëhet nga fjala kyçe për , e ndjekur nga kllapa që përmbajnë tre shprehje brenda, të ndara me pikëpresje. Ka urdhrin e mëposhtëm të ekzekutimit:

  1. Në fillim të ciklit, shprehja e inicializimit ekzekutohet; ajo vlerësohet (ekzekutohet) gjithmonë vetëm një herë në fillim.
  2. Më poshtë është një shprehje e kushtëzuar. Para fillimit të çdo përsëritjeje, llogaritet vlera e shprehjes së kushtëzuar (kushti i ekzekutimit); nëse vlerësohet në TRUE, atëherë trupi i ciklit ekzekutohet; nëse vlerësohet në FALSE, cikli përfundon. Nëse kushti është i rremë në provën e parë, trupi i lakut nuk do të ekzekutohet as edhe një herë.
  3. Krejt në fund, pas kryerjes së veprimeve në trupin e lakut, përpunohet shprehja e fundit (shprehja tjetër pas kushtit). Në këtë rast, kjo është një shprehje në rritje - ajo rrit vlerën e ndryshores numërues.

Një shembull i thjeshtë i një cikli for:

Në fakt, cikli for është pothuajse universal sepse lejon një shumëllojshmëri të gjerë përdorimesh.

për lak pa pjesë të kokës

Secila prej shprehjeve në kokën e ciklit for mund të mungojë.

Nëse inicializimi nuk nevojitet ose ndodh diku tjetër, nuk nevojitet një shprehje inicializimi. Le të rishkruajmë pak shembullin e mëparshëm:

Ju lutemi vini re se pikëpresja kërkohet sepse tregon një shprehje që mungon. Mungesa e një shprehje kushti është ekuivalente me vendosjen e vlerës TRUE në kusht.

Në këtë rast, lak do të funksionojë pafund. Nëse nuk ka shprehje në rritje, atëherë ajo duhet të jetë në trupin e lakut, përndryshe cikli do të ekzekutohet pafundësisht.

Mbani në mend se një ose të gjitha tre shprehjet mund të hiqen, por duhet të përdoren gjithmonë pikëpresje (;).

Disa shprehje në kokën e një cikli for

Në kokën e ciklit for, çdo shprehje e ndarë me një pikëpresje mund të përmbajë shprehje të shumta të ndara me presje. Prandaj, mund të përdoren shprehje të çdo kompleksiteti.

"; } ?>

Nëse kushti i ekzekutimit përdor disa shprehje të ndara me presje, atëherë ato vlerësohen të gjitha, por rezultati merret nga e fundit.

Unazat e mbivendosura

Ashtu si deklaratat e kushtëzuara, sythe mund të mbivendosen. Një shembull i thjeshtë me një nivel foleje:

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

Nuk ka gjasa që ju të mund të shkruani një skenar serioz në PHP pa përdorur sythe. Çfarë është një cikël? Ky është një lloj i veçantë i strukturës së kontrollit që ju lejon të ekzekutoni në mënyrë të përsëritur (dhe madje pafundësisht) të njëjtin kod. Llojet e mëposhtme mbështeten në PHP:

Tre unazat e para janë ato që me shumë mundësi do t'i shihni në shumicën e gjuhëve programuese. Sythet, në varësi të kushteve, mund të ndërpriten ose të vazhdojnë (vazhdoni në përsëritjen tjetër pa ekzekutuar trupin e lakut). Le të hedhim një vështrim më të afërt në secilin prej cikleve.

për lak

Sintaksa e ciklit for është si më poshtë.

For(inicializimi; kushti; komandat_pas_përsëritjes) (loop_body; )

Blloku i inicializimit gjithmonë inicializon numëruesin, si dhe variablat e tjerë (nëse është e nevojshme). Blloku i kushteve specifikon se në cilën pikë cikli duhet të ndalojë së funksionuari. Në bllokun e komandave të ekzekutuara pas çdo përsëritjeje të ciklit, zakonisht ndryshon vlera e numëruesit, si dhe ndryshoret e tjera (nëse është e nevojshme).

// Grup vlerash $array = array("Mollë", "Patate", "Shalqi", "Lule", "Ujë", "Merkuri", "Oksigjen", "Gruri", "Rusi", "Moska ", "Dush"); // Kushti i lakut tingëllon kështu: derisa numëruesi të arrijë një vlerë të barabartë me numrin // të elementeve të grupit, trupi i ciklit ekzekutohet për ($i = 0; $i< count($array); $i++) { print "
".($i + 1)". ".$array[$i].."; ) /* Rezultati i ciklit do të jetë si më poshtë: 1. mollë. 2. patate. 3. shalqi. 4. lule. 5. ujë. 6. merkur. 7 Oksigjeni 8. Gruri 9. Rusia 10. Moska 11. Shi */

Meqenëse numëruesi $i fillonte nga zero, në çdo përsëritje i shtonim një vlerës së tij për ta bërë listën të dukej më e njohur. Pas çdo përsëritjeje, vlera e numëruesit u rrit me një, dhe kur arriti në 11, cikli u ndal. Tani le të hedhim një vështrim në ciklin do-while.

lak do-while

Cikli do-while është i ndryshëm në atë që funksionon në një kusht postar. Kjo do të thotë që kodi që gjendet brenda trupit të ciklit do të ekzekutohet të paktën një herë. Sintaksa e lakut është:

Do (loop_body; ) while(kusht);

Ky lak përdoret mjaft rrallë në programimin në ueb, por mund t'ju duhet në skriptet tuaja.

// Një grup tashmë i njohur për ne $array = array("Mollë", "Patate", "Shalqi", "Lule", "Ujë", "Merkuri", "Oksigjen", "Grurë", "Rusi", "Moska " , "Shi"); // Filloni ciklin $i = 1; bëj (printo"
".$i". ".$array[($i - 1)]."; ) ndërsa($i++< count($array)); /* Результат работы цикла будет таким: 1. Яблоко. 2. Картошка. 3. Арбуз. 4. Цветок. 5. Вода. 6. Ртуть. 7. Кислород. 8. Пшеница. 9. Россия. 10. Москва. 11. Ливень. */

Vini re ndryshimin midis asaj që printojmë në këtë cikli dhe ciklit for. Meqenëse kodi në trupin e ciklit do-while ekzekutohet të paktën një herë, vlera fillestare e numëruesit u vendos në zero. Si funksionon një lak... ekzekutohet kodi, më pas testohet një kusht. Në përsëritjen e parë, numëruesi kishte vlerën 1. Pas përsëritjes, një doli të ishte më pak se 11 (numri i elementeve). Në përsëritjen e fundit, numëruesi kishte një vlerë prej 11, dhe kjo nuk është aspak më pak se 11. Cikli u ndal. Cikli while është shumë i ngjashëm me do-while.

ndërsa lak

Cikli while është i kushtëzuar. Ai do të ekzekutohet vetëm kur kushti i tij është i vërtetë. Kjo do të thotë, cikli while mund të mos ekzekutohet fare. Sintaksa e tij është:

Ndërsa (kushti) (loop_body;)

Së bashku me ciklin for, cikli while përdoret shumë shpesh.

$array = array("Mollë", "Patate", "Shalqi", "Lule", "Ujë", "Merkuri", "Oksigjen", "Grurë", "Rusi", "Moskë", "Shi"); $i = 1; ndërsa ($i++<= count($array)) { print "
".$i". ".$array[($i - 1)]."; ) /* Rezultati i lakut do të jetë si më poshtë: 1. Mollë. 2. Patate. 3. Shalqi. 4. Lule. 5. Ujë. 6. Mërkuri 7. Oksigjen 8. Gruri 9. Rusi 10. Moskë 11. Shi */

Cikli while është më i thjeshtë dhe më i kuptueshëm për zhvilluesit fillestarë.

për çdo lak

Lakja foreach nuk është si të gjitha sa më sipër. Ai u shfaq në PHP4 dhe është krijuar për të përsëritur mbi vargje. Zhvilluesi nuk ka nevojë të shpikë asgjë për këtë. Gjithçka është e lehtë dhe e thjeshtë:

/** * Cikli foreach duhet të kuptohet si "për secilin prej". * Vargu i përpunuar nga cikli i kalohet një ndryshoreje që është * e aksesueshme vetëm brenda trupit të ciklit. Nëse dëshironi, mund të përdorni edhe çelësat e grupit *. */ foreach(array si grup_element) (loop_body; ) foreach(array si array_key => array_element) (loop_body; )

Parimi i ciklit foreach është krejtësisht i ndryshëm nga cikli for , while dhe do-while. Prandaj, është mjaft e vështirë për zhvilluesit e papërvojë të kuptojnë se çfarë saktësisht mund (dhe madje duhet) të bëhet me të.

// Le të ndryshojmë grupin që e dimë tashmë. Le ta bëjmë atë asociativ. $array = array("Mollë" => "fruta", "Patate" => "perime", "Shalqi" => "kokrra të kuqe", "Lule" => "bimë", "Ujë" => "lëng", "Merkuri" => "metal", "Oksigjen" => "gaz", "Gruri" => "bukë", "Rusi" => "Amëdheu ynë", "Moska" => "kryeqyteti i Atdheut tonë", “Shi " => "popados"); $i = 1; // Ne mund ta bëjmë këtë foreach ($array si $v) ( print "
".$i". ".$v."; $i++; ) /* Marrim këtë rezultat të papritur: 1. fruta. 2. perime. 3. kokrra të kuqe. 4. bimë. 5. lëng. 6. metal. 7. gaz. 8 . bukë. 9. Mëmëdheu ynë. 10. kryeqyteti i mëmëdheut tonë. 11. popados. */ // Tani le ta bëjmë ndryshe foreach($array as $k => $v) ( print "
".$i". ".$k." është ".$v."; $i++; ) /* Tani rezultati do të jetë si ky 1. Një mollë është një frut. 2. Një patate është një perime. 3. Një shalqi është një kokrra të kuqe. 4. Një lule është një bimë. 5. Uji është një lëng 6. Mërkuri është një metal. 7. Oksigjeni është një gaz. 8. Gruri është bukë. 9. Rusia është atdheu ynë 10. Moska është kryeqyteti i atdheut tonë. 11. Shiu është një hit. .*/

A e kuptoni se si funksionon ky cikël? Nëse jo, mund të bëni një pyetje në komentet e materialit.

Ju mund të përdorni konstruksione në çdo lak thyej ose vazhdojnë. Ndonjëherë nuk ka kuptim të vazhdoni ciklin ose duhet të kaloni në përsëritjen tjetër.

$array = array("Mollë" => "fruta", "Patate" => "perime", "Shalqi" => "kokrra të kuqe", "Lule" => "bimë", "Ujë" => "lëng", "Merkuri" => "metal", "Oksigjen" => "gaz", "Gruri" => "bukë", "Rusi" => "Amëdheu ynë", "Moska" => "kryeqyteti i Atdheut tonë", “Shi " => "popados"); $i = 1; // Një shembull se si funksionon një lak me konstruktin continue foreach($array as $k => $v) ( if($k != "Oxygen") continue; print "
".$i". ".$k." është ".$v."; $i++;) /* Rezultati do të jetë si ky 1. Oksigjeni është një gaz. */ $i = 1; // Një shembull se si funksionon një lak me ndërprerjen e ndërtimit foreach($ grupi si $k = > $v) ( if($k == "Oxygen") thyej; print "
".$i". ".$k." është ".$v."; $i++; ) /* Rezultati do të jetë 1. Një mollë është një frut. 2. Një patate është një perime. 3. Një shalqi është një kokrra të kuqe. 4. Një lule është një bimë. 5. Uji është lëng 6. Mërkuri është metal */

Shënimi: Aktivizohet versioni adaptiv i faqes, i cili përshtatet automatikisht me madhësinë e vogël të shfletuesit tuaj dhe fsheh disa detaje të faqes për lehtësinë e leximit. Shijojeni shikimin!

Përshëndetje të dashur lexues dhe abonentë të rregullt! Është koha për të vazhduar serinë e artikujve rreth PHP dhe sot do të studiojmë një gjë kaq themelore dhe në të njëjtën kohë shumë të rëndësishme si sythe. Cila është gjëja e parë që duhet të dini për ciklet? Dhe fakti që ato përdoren kudo, dhe shabllonet për Joomla, VirtueMart, Wordpress, OpenCart dhe çdo CMS tjetër nuk janë përjashtim.

Çfarë është një cikël? Cikliështë përsëritja e përsëritur e së njëjtës pjesë të kodit. Sa përsëritje duhet të bëhen varet nga numëruesi i ciklit, të cilin ne vetë e krijojmë dhe mund ta kontrollojmë. Kjo është shumë e përshtatshme, për shembull, kur na duhet të shfaqim produkte në një kategori dyqanesh online, të shfaqim postime në blog, të shfaqim komente për një artikull ose produkt; të gjitha menutë në CMS (motorët e faqes në internet) bëhen gjithashtu duke përdorur cikle. Në përgjithësi, sythe përdoren shumë shpesh.

Por, para se të kaloni në vetë sythe, së pari duhet të kuptoni një gjë të tillë si operatorët rritje Dhe pakësim.

Operatori ++ (rritje) rrit vlerën e një ndryshoreje me një, ndërsa operatori -- (zvogëlimi) e zvogëlon vlerën e një ndryshoreje me një. Ato janë shumë të përshtatshme për t'u përdorur në sythe si numërues dhe në programim në përgjithësi. Ekzistojnë gjithashtu rritje/ulje PRE dhe rritje/zvogëlim POST:

Rritja/zvogëlimi PRE ++$a Rrit $a me një dhe kthen vlerën $a. --$a Zvogëlon $a me një dhe kthen vlerën e $a. POST increment/decrement $a++ Kthen vlerën e $a dhe më pas rrit $a me një. $a-- Rikthen vlerën e $a dhe më pas zvogëlon $a me një.

Për shembull:

$a = 1; echo "Numri i daljes: " . $a++; // Nxjerr numrin: 1 jehonë "Nxjerrja e numrit: " . $a; // Nxjerr numrin: 2 jehonë "Nxjerrja e numrit: $a"; $a += 1; // njëjtë si në rreshtin e parë$a = 1; echo "Numri i daljes: " . +$a; // Nxjerr numrin: 2 jehonë "Nxjerrja e numrit: " . $a; // Nxjerr numrin: 2 $a += 1; echo "Numri i daljes: $a"; // njëjtë si në rreshtin e parë të këtij blloku

për lak

për (pjesa A; pjesa B; pjesa C) ( // Cilido kod, sa rreshta të doni; )

Laku for përbëhet nga 3 pjesë dhe vetë trupi. Pjesa A ai thjesht bën atë që thotë, zakonisht në 90% të rasteve krijon një numërues loop. Pjesa B- kjo është, përafërsisht, tashmë e njohur për ne nëse, domethënë, kontrollimi i së vërtetës (e vërtetë?). Nëse kushti është i vërtetë, kjo është e vërtetë, më pas PHP futet brenda ciklit dhe vazhdon ta ekzekutojë atë. Pjesa C- njësoj si pjesa A, si rregull, në pjesën C bëjmë një lloj transformimi me numëruesin. Për shembull:

"; ) echo "DAL NGA LAKU dhe vazhdoi përmes kodit..."; ?>

Tani në lidhje me algoritmin e ciklit for. Gjëja e parë që PHP sheh është se shkon në pjesën A dhe e ekzekuton atë vetëm një herë (shih imazhin më poshtë). Më pas, PHP shkon në pjesën B dhe kontrollon nëse është e vërtetë apo e rreme. Nëse është e vërtetë, atëherë ai ekzekuton trupin e ciklit dhe vetëm pas kësaj kalon në pjesën C. Pas kësaj, PHP përsëri shkon në pjesën B dhe kontrollon nëse është ende e vërtetë atje apo jo. Nëse jo, atëherë cikli përfundon, nëse po, atëherë vazhdon derisa pjesa B të përmbajë false.

Rezultati i shembullit të mëparshëm:

Ndërsa Loop

ndërsa (pjesa B) ( // Cilido kod, sa rreshta të doni; )

Siç mund ta shihni, nuk ka asnjë pjesë A dhe pjesë C, nga cikli for ka mbetur vetëm një kusht, domethënë pjesa B. Nëse duhet të përdorim një numërues, atëherë duhet ta vendosim atë brenda lakut while, midis pjesa tjetër e kodit, kjo do të jetë pjesa C. A krijoni Numëruesi është i nevojshëm përpara fillimit të konstruksionit while:

Pjesa A; ndërsa (pjesa B) ( // Çdo kod, sa më shumë rreshta që dëshironi; Pjesa C; )

Le ta konvertojmë ciklin e mëparshëm for në një cikli while:

"; $i++; ) echo "DAL NGA LAKU dhe vazhdoi përmes kodit..."; ?>

Rezultati do të jetë saktësisht i njëjtë. Çfarë të përdorni: një lak for ose një lak është çështje shije, shikoni çfarë është më e përshtatshme dhe logjike për ju, nuk ka dallim.

Bëj... while loop

Më pak e zakonshme nga të gjitha llojet e ciklit. Në thelb kjo është një kohë e përmbysur. Truku i tij është se PHP patjetër do të hyjë në trupin e do... while loop të paktën një herë (herën e parë), sepse në këtë lak ka një kusht në fund:

Pjesa A; do( // Çdo kod, sa rreshta të duash; Pjesa C; )while (Pjesa B);

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

Është e rëndësishme të kuptohet: në të tre llojet e cikleve nuk ka pjesë të detyrueshme.

Një shembull i një cikli for pa pjesën A dhe pjesën C:

Për(;$i > 8;)( // kodi juaj)

Një shembull i një cikli for pa të tre pjesët:

Për(;;)( // lak klasik i pafund)

Kjo do të thotë, të gjitha pikat e presjes mbeten ende në ciklin for, kjo është sintaksa!

Sythe të pafundme

Një lak i pafund është një gabim zhvilluesi në të cilin faqja nuk do të mund të ngarkohet kurrë deri në fund, pasi kushti i ciklit (pjesa B) do të jetë gjithmonë i vërtetë. Për shembull:

"; $i++; )while ($i != 0); jehonë "DAL NGA LAKU dhe vazhdoi përmes kodit..."; ?>

Rezultati:

Unë tregova vetëm një pjesë të kësaj, sepse gjithçka nuk përshtatet në ekran. Kështu do të vuajë pafund shfletuesi juaj dhe serveri i faqes tuaj derisa shfletuesi të prishet pas 30 sekondash.Dhe gjithçka sepse në shembullin e mësipërm, ndryshorja $i nuk do të jetë kurrë e barabartë me zero, fillimisht është e barabartë me 1 dhe është vazhdimisht në rritje.

Kjo do të thotë, zhvilluesi ishte i pavëmendshëm kur doli me një kusht të tillë.

Menaxhimi i ciklit

Pushimi i operatorit. Ka situata kur nuk kemi nevojë për lak për të luajtur të gjitha përsëritjet (përsëritjet). Për shembull, në një moment të caktuar duam ta ndërpresim atë dhe të vazhdojmë ekzekutimin me kodin më poshtë:

"; nëse ($i === 5) thyej; // dil nga cikli nëse $i është i barabartë me 5 $i++; ) echo "Unë mund të numëroj vetëm deri në 5:("; ?>

Rezultati:

Në shembullin e mësipërm, sapo arritëm në pesë, PHP doli nga cikli, përndryshe do të kishte numëruar deri në 7.

Vazhdo operator gjithashtu ndërpret ekzekutimin e ciklit, por ndryshe nga break, continue nuk del nga cikli, por e kthen interpretuesin PHP përsëri në gjendje (në pjesën B). Shembull:

"; ) jehonë "A më ka munguar diçka?"; ?>

Rezultati:

Sapo na humbi numrin 5 sepse PHP nuk mori jehonë.

Një lak mund të vendoset brenda një cikli. Në këtë rast, deklaratat vazhdim dhe ndërprerje zbatohen vetëm për një lak, atë në të cilin ndodhen. Kjo do të thotë, me fjalë të tjera, ato transferohen në një nivel, dhe jo në të gjithë. Shembull:

Por ne vetë mund të zgjedhim se sa nivele duhet të kalojmë:

"; $i++; $i=1; $k=1; ndërsa ($k< 8) { echo "Итерация $k номер ". $k . "
"; nëse ($k === 5) thyej 2; $k++; ) ) ?>

Rezultati:

Natyrisht, ne nuk mund të vendosim një numër më të madh se numri i sytheve të mbivendosur që kemi.

për çdo lak

E fundit në rend, por më e rëndësishmja për nga rëndësia, është cikli foreach. I perdorur vetëm për numërimin dhe objektet (është herët për t'i mësuar ato). Shembull i sintaksës:

"; } ?>

Rezultati:

Ky ishte një konstrukt i shkurtër për çdo gjë, por ka gjithashtu një version të zgjeruar, i cili përveç vlerave të qelizave të grupit, shfaq edhe emrat e qelizave (çelësat):

$value) (jehonë "Në seksion " . $key ." ekziston një artikull i quajtur: ". $value ."
"; } ?>

Rezultati:

Unë tërheq vëmendjen tuaj për faktin se ne mund t'i quajmë variablat si të duam, madje edhe $key dhe $value, madje edhe $xxx dhe $yyy.

Nëse është një grup, atëherë përdorim vetëm ciklin foreach dhe asnjë tjetër. Është ky cikël që përdoret në të gjithë VirtueMart, dhe në të vërtetë kudo.

Po shkruaj këtë artikull për fillestarët që sapo kanë filluar të studiojnë PHP. Në këtë artikull do t'ju tregoj për të gjitha llojet e sythe në PHP, pasi ky artikull nuk ishte në faqen time të internetit. Kishte vetëm, por, megjithë ngjashmërinë e përgjithshme, ende nuk është e njëjtë. NË PHP ka 4 lloje ciklesh.

  1. DERISA
  2. BEJ NDERKOHE
  3. PER SECILIN

Le t'i shohim ato në rend dhe të fillojmë me më të njohurit. lak në PHP(dhe jo vetëm në PHP) - Kjo PER lak. Sintaksa për këtë lak është si më poshtë:

Për(Shprehja_1; Shprehja_2; Shprehja_3) (
operatorët
}

Shprehja_1 kryhet menjëherë dhe pa kushte, Shprehja_3 ekzekutohet pas çdo përsëritjeje të lakut. Shprehja_2është një kontroll për të parë nëse cikli duhet të vazhdojë. Nëse rezultati i shprehjes është e vërtetë, atëherë fillon përsëritja tjetër e ciklit, dhe nëse i rremë, atëherë cikli ndalon së punuari.

Lloji tjetër i lakut është DERISA. Ky është një lloj më i thjeshtë sythe, sintaksa e të cilit është si më poshtë:

Ndërsa (shprehje) (
operatorët
}

Mirupafshim Shprehje kthehet e vërtetë, cikli do të ekzekutohet dhe sapo të shfaqet i rremë, ndalon së punuari.

DO-WHILE Loop shumë të ngjashme me DERISA, por me një ndryshim. Gjendja e daljes kontrollohet pasi të ekzekutohet përsëritja, jo më parë. Kështu, ky lak do të ekzekutohet gjithmonë të paktën 1 një herë. Dhe kështu Sintaksa e ciklit DO-WHILE:

bej(
operatorët
)ndërsa (Kushti);

Dhe së fundi, lloji i fundit i cikleve është per secilin, e cila shërben vetëm për përsëritjen mbi vargje dhe objekte. Është e nevojshme kur çelësat e grupit nuk janë numra (të cilët mund të përsëriten lehtësisht përmes të njëjtit PËR), dhe vargje. Sintaksa e ciklit FOREACH tjetër:

Foreach($array_or_object si $key => $value) (
operatorët
}

Dhe së fundi, le të zbatojmë gjithçka 4 lloje të sytheve në PHP për looping nëpër vargje:

$lista = grup (5, 2, 3, 10, 12, 10);
$array = grup ("a" => 1, "x" => 10, "m" => -5);
për ($i = 0; $i< count($list); $i++) {
echo $list[$i]."; ";
}
jehonë"
";
$i = 0;
ndërsa ($i< count($list)) {
echo $list[$i]."; ";
$i++;
}
jehonë"
";
$i = 0;
bej(
echo $list[$i]."; ";
$i++;
) ndërsa ($i< count($list));
jehonë"
";
foreach ($array si $key => $value) (
echo "$key = $value; ";
}
?>

Çdo programues duhet t'i dijë përmendësh të gjitha këto cikle, kështu që nëse papritur diçka është e paqartë, rilexoni përsëri ose bëni një pyetje në komente dhe unë do të përpiqem të përgjigjem.

Deklaratat e ciklit përdoren shumë shpesh në çdo gjuhë programimi. Pothuajse të gjitha problemet përdorin sythe, kështu që ia vlen t'i kushtohet vëmendje e veçantë mësimit të tyre. Ekzistojnë 4 lloje të sytheve në PHP:

  • ndërsa (kontrolli i gjendjes së prefiksit);
  • do..while (kontrolli i gjendjes postperfix);
  • për ;
  • per secilin ;

Tre sythe të para janë të ngjashme me sythe standarde nga gjuhët e programimit (C++, Pascal), dhe i fundit (foreach) është i ngjashëm me Perl. Le të shohim veçmas tre operatorët e parë të lakut, dhe i fundit do të trajtohet në një mësim të veçantë. Vini re se secili prej sytheve lejon sythe të mbivendosur, domethënë një lak brenda një cikli.

Ndërsa deklarata e ciklit në PHP

Një operator loop mjaft i thjeshtë, sintaksa e të cilit është shumë e ngjashme me atë në gjuhët e tjera të programimit.

Ndërsa sintaksa në PHP:

//mund të ketë një kusht kompleks logjik( operatorët; ) ?>

Kushti përmban një shprehje që duhet të jetë ose e vërtetë (e vërtetë) ose e rreme (e rreme). Nëse kushti është i vërtetë, deklaratat në kllapat kaçurrelë ekzekutohen. Pas së cilës gjendja kontrollohet përsëri për të vërtetën. Nëse kushti është false, atëherë programi nuk hyn në lak. Në rastin e një deklarate të vetme, mbajtëset kaçurrelë mund të hiqen.

shënim: kushti mund të përbëhet nga shumë shprehje duke përdorur algjebrën e logjikës &&, ||, ! etj.

Vlen t'i kushtohet vëmendje faktit që nëse ka operatorë në gjendje, atëherë ata duhet të ndryshohen disi, përndryshe lak thjesht do të shkojë në cikle.

Këtu është një shembull i thjeshtë i përdorimit ndërsa:

"; $i++; ) ?>

Shembulli i mësipërm do të prodhojë daljen e mëposhtme:

i = 0
i = 1
i=2
i=3
i=4

Ju lutemi vini re se $i=5 nuk do të printohet sepse i rritet në fund të ciklit dhe për këtë arsye sapo të arrijë 5, kushti për të hyrë në lak thjesht nuk do të plotësohet.

deklaratë pushimi në PHP

Ekziston një deklaratë e veçantë pushimi për të përfunduar menjëherë ciklin. Ky operator përdoret shpesh për të dalë nga një lak i pafund kur kushti është gjithmonë i vërtetë. Për shembull, shembulli i përshkruar më sipër mund të shkruhet si më poshtë:

//kushti është gjithmonë i vërtetë( jehonë "i =".$i."
"; $i++; if($i>=5) thyej; ) ?>

Rezultati do të jetë i njëjtë si në shembullin e mëparshëm.

Deklarata e vazhdimit në PHP

Operatori vazhdon; përfundon përsëritjen aktuale të ciklit duke lëvizur në fillim, por nuk e përfundon ciklin plotësisht. Për shembull:

//kushti është gjithmonë i vërtetë( jehonë "i =".$i."
"; $i++; if($i>=5) thyej; tjetër vazhdo; ) ?>

Rezultati i këtij shembulli do të jetë i njëjtë me shembujt e mëparshëm.

Siç tregon praktika, operatorët vazhdojnë; dhe thyej; shpesh ndihmojnë në zbatimin e cikleve komplekse.

Më lejoni t'ju jap një shembull tjetër të përdorimit të ciklit while:

"; } //Rezultatet e këtyre dy kohërave do të jenë të ndryshme //për shkak të formës post-prefiks dhe parashtesë$i=0; ndërsa (++$i //forma e prefiksit ( jehonë "i =".$i."
"; } ?>

Deklarata do...while e ciklit në PHP

Deklarata do...while është shumë e ngjashme me një deklaratë të rregullt while. I vetmi ndryshim është koha që duhet për të kontrolluar gjendjen. Cikli do...while do të ekzekutohet të paktën një herë, pasi kontrolli ndodh në fund. Sintaksa do...while është:

Le të shohim një shembull:

"; $i++; ) ndërsa ($i

Rezultati i tij është i ngjashëm me shembujt e parë të konsideruar.

Vlen të theksohet se operatorët e vazhdimit; dhe thyej; mund të përdoret edhe në cikle të tilla.

Për operatorin e ciklit në PHP

Sintaksa e deklaratës for është si më poshtë:

Në fillim, ndodh inicializimi fillestar i variablave. Usloviya duhet të përmbajë një ose më shumë kushte të përfundimit të lakut. Shag përmban deklarata që ekzekutohen në fund të çdo përsëritjeje. Për shembull:

"; } ?>

Rezultati i këtij cikli do të jetë i njëjtë me shembujt e mëparshëm.

Avantazhi i madh i përdorimit për është se trupi i lakut mund të mungojë dhe të gjitha operacionet e nevojshme kryhen në seksionin e shag. Për qartësi, këtu është një shembull:

", $i++); ?>

Komentoni: Funksioni echo nuk lejohet në shag.

Hapi i ciklit dhe kushtet mund të jenë shumë të ndryshme. Për shembull, mund të shkruani jo i++, por i+=5 (rritje me 5).

Çdo seksion i ciklit for mund të hiqet, në të cilin rast rezultati është një lak i pafund:

për lejon përdorimin e vazhdimit; dhe thyej; .

Së fundi, këtu është një shembull i dy ndërtimeve ekuivalente të lakut, por njëri do të jetë për, dhe tjetri ndërsa

Ekuivalente me sa vijon:

Artikujt më të mirë mbi këtë temë