⊗ppPmLpFl 124 of 447 menu

Delo z zastavicami v PHP

Zdaj se bomo naučili delati z zastavicami. Zastavica je posebna spremenljivka, ki lahko sprejme le dve vrednosti: true in false. Z zastavicami lahko rešujemo naloge, ki preverjajo odsotnost nečesa: na primer, lahko preverimo, da v matriki ni elementa z določeno vrednostjo. Pa začnimo.

Rešimo naslednjo nalogo: podana je matrika s števili, preveriti je treba, ali vsebuje element z vrednostjo 3 ali ne. Če obstaja - izpišimo '+++', če ne - izpišimo '---'.

Za začetek poskusimo izpisati '+++'. Za to bomo prešli vse elemente naše matrike in z if vprašali - ali je trenutni element enak vrednosti 3. Če je enak - izpišimo '+++':

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

Toda naša rešitev ni zelo dobra: kajti če bo v matriki ne ena vrednost 3, ampak več, potem se bo '+++' izpisal večkrat. Popravimo našo matriko (naredimo dva elementa z vrednostjo 3) in se prepričajmo v tem:

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

Popravimo težavo: zaključimo zanko s pomočjo break, če je element že najden:

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

Poskusimo zdaj narediti tako, da če v matriki sploh ni elementov z vrednostjo 3, izpiše '---'. Pogosta napačna predstava je dodati else k našemu ifu - v tem primeru se bo '---' izpisal za vse elemente, ki niso 3:

<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // izpiše se na elementu 3 } else { echo '---'; // izpiše se na elementih 1, 2, 4, 5 } } ?>

Torej, ideja dodati else - je slaba ideja, ne deluje. Za reševanje tovrstnih nalog (takšne naloge se pojavljajo dovolj pogosto) uporabljajo tako imenovane zastavice.

Kot že omenjeno zgoraj, zastavica je takšna spremenljivka, ki lahko sprejme dve vrednosti: true ali false.

Torej, naredimo spremenljivko flag s takšno vrednostjo: če je enaka true, potem je v matriki element 3, če pa je false, potem takšnega elementa ni.

Sprva postavimo spremenljivko flag na vrednost false - to pomeni, da bomo šteli, da elementa 3 v matriki ni:

$arr = [1, 2, 3, 4, 5]; $flag = false; // menimo, da elementa 3 ni v matriki

Nato zaženimo zanko z ifom tako, kot smo to delali prej. Če zanka odkrije, da je v matriki element 3 - potem postavimo spremenljivko flag na vrednost true in izstopimo iz zanke s pomočjo break:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; // menimo, da elementa 3 ni v matriki foreach ($arr as $elem) { if ($elem === 3) { $flag = true; // element obstaja - predefinirajmo spremenljivko $flag break; // izstopimo iz zanke } } ?>

Odgovor na vprašanje, ali je v matriki 3 ali ne, lahko podamo šele po zanki. In ta odgovor že imamo: po zanki je spremenljivka flag lahko ostala false ali pa je spremenila svojo vrednost na true, če je zanka odkrila v matriki 3:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } // tukaj je spremenljivka $flag enaka true ali false ?>

Zdaj lahko po zanki naredimo if, ki bo pogledal spremenljivko flag in izpisal na zaslon '+++' ali '---':

<?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 '---'; } ?>

Podana je matrika:

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

Preverite, ali je v tej matriki element 'c'. Če obstaja - izpišite '+++', če ne - izpišite '---'.

Napišite kodo, ki bo preverjala število, ali je praštevilo ali ne. Praštevilo je deljivo samo z ena in s samim seboj, in ni deljivo z drugimi števili.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni