⊗ppPmLpFl 124 of 447 menu

Vėliavų naudojimas PHP

Dabar mes išmoksime dirbti su vėliavomis. Vėliava - tai specialus kintamasis, kuris gali įgyti tik dvi reikšmes: true ir false. Naudojant vėliavas galima spręsti uždavinius, kurie tikrina ko nors nebuvimą: pavyzdžiui, galima patikrinti, ar masyve nėra elemento su tam tikra reikšme. Pradėkime.

Išspręskime tokį uždavinį: duotas masyvas su skaičiais, reikia patikrinti, ar jame yra elementas su reikšme 3, ar ne. Jei yra - išveskime '+++', jei nėra - išveskime '---'.

Pirmiausia pabandykime išvesti '+++'. Norėdami tai padaryti, pereisime per visus mūsų masyvo elementus ir su if sakiniu tikrinsime - ar dabartinis elementas lygus reikšmei 3. Jei lygus - išveskime '+++':

<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; } } ?>

Bet mūsų sprendimas nėra labai geras: jei masyve bus ne viena reikšmė 3, o kelios, tai '+++' bus išvesta kelis kartus. Pakeiskime mūsų masyvą (padarykime du elementus su reikšme 3) ir tuo įsitikinkime:

<?php $arr = [1, 2, 3, 4, 3, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // išves kelis kartus } } ?>

Ištaisykime problemą: užbaikime ciklą naudodami break, jei elementas jau rastas:

<?php $arr = [1, 2, 3, 4, 3, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; break; // užbaigiame ciklą } } ?>

Dabar pabandykime padaryti taip, kad, jei masyve išvis nėra elementų su reikšme 3, būtų išvesta '---'. Dažnas klaidingas sprendimas būtų pridėti else prie mūsų if sakinio - tokiu atveju '---' bus išvesta visiems elementams, kurie nėra 3:

<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // išves ant elemento 3 } else { echo '---'; // išves ant elementų 1, 2, 4, 5 } } ?>

Taigi, idėja pridėti else - bloga idėja, neveikianti. Tokio tipo uždaviniams spręsti (tokie uždaviniai pasitaiko pakankamai dažnai) ir naudojamos vadinamosios vėliavos.

Kaip jau minėta anksčiau, vėliava - tai toks kintamasis, kuris gali įgyti dvi reikšmes: true arba false.

Taigi, padarykime kintamąjį flag su tokia reikšme: jei jis lygus true, tai masyve yra elementas 3, o jei false, tokio elemento nėra.

Iš pradžių nustatykime kintamąjį flag į reikšmę false - tai reiškia, kad laikysime, kad elemento 3 masyve nėra:

$arr = [1, 2, 3, 4, 5]; $flag = false; // manome, kad elemento 3 nėra masyve

Tada paleiskime ciklą su if sakiniai taip, kaip mes darėme anksčiau. Jei ciklas aptiks, kad masyve yra elementas 3 - tai nustatysime kintamąjį flag į reikšmę true ir išeisime iš ciklo naudodami break:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; // manome, kad elemento 3 nėra masyve foreach ($arr as $elem) { if ($elem === 3) { $flag = true; // elementas yra - perapibrėžsime kintamąjį $flag break; // išeisime iš ciklo } } ?>

Atsakymą į klausimą, ar masyve yra 3, ar ne, galime duoti tik po ciklo. Ir šį atsakymą mes jau turime: po ciklo kintamasis flag galėjo likti false arba galėjo pakeisti savo reikšmę į true, jei ciklas aptiko masyve 3:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } // čia kintamasis $flag lygus arba true, arba false ?>

Dabar po ciklo mes galime padaryti if sakinį, kuris pažiūrės į kintamąjį flag ir išves į ekraną '+++' arba '---':

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } if ($flag === true) { echo '+++'; } else { echo '---'; } ?>

Duotas masyvas:

<?php $arr = ['a', 'b', 'c', 'd', 'e']; ?>

Patikrinkite, ar šiame masyve yra elementas 'c'. Jei yra - išveskite '+++', o jei nėra - išveskite '---'.

Parašykite kodą, kuris tikrins skaičių, ar jis yra pirminis, ar ne. Pirminis skaičius dalijasi tik iš vieneto ir iš savęs, ir nesidalija iš kitų skaičių.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti