⊗ppPmLpFl 124 of 447 menu

Werken met vlaggen in PHP

Nu gaan we leren werken met vlaggen. Een vlag is een speciale variabele die slechts twee waarden kan aannemen: true en false. Met vlaggen kunnen taken worden opgelost die de afwezigheid van iets controleren: je kunt bijvoorbeeld controleren of er in een array geen element met een bepaalde waarde zit. Laten we beginnen.

Laten we de volgende taak oplossen: gegeven een array met nummers, controleer of er een element in zit met de waarde 3 of niet. Als die er is - geef dan '+++' uit, als die er niet is - geef dan '---' uit.

Laten we eerst proberen '+++' uit te voeren. Om dit te doen, doorlopen we alle elementen van onze array en met een if zullen we vragen - is het huidige element gelijk aan de waarde 3. Als het gelijk is - voer dan '+++' uit:

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

Maar onze oplossing is niet erg goed: want als er in de array niet één waarde 3 is, maar meerdere, dan wordt '+++' meerdere keren uitgevoerd. Laten we onze array aanpassen (we maken twee elementen met de waarde 3) en daarvan overtuigen:

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

Laten we het probleem oplossen: we beëindigen de lus met break, als het element al is gevonden:

<?php $arr = [1, 2, 3, 4, 3, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; break; // beëindig de lus } } ?>

Laten we nu proberen te regelen dat, als er helemaal geen elementen zijn met de waarde 3 in de array, er '---' wordt uitgevoerd. Een wijdverbreid misverstand is om else toe te voegen aan onze if - in dat geval wordt '---' uitgevoerd voor alle elementen die niet 3 zijn:

<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // wordt uitgevoerd bij element 3 } else { echo '---'; // wordt uitgevoerd bij elementen 1, 2, 4, 5 } } ?>

Dus, het idee om else toe te voegen - is een slecht idee, het werkt niet. Voor het oplossen van taken van dit type (dergelijke taken komen vrij vaak voor) gebruikt men zogenaamde vlaggen.

Zoals hierboven al vermeld, is een vlag - een variabele die twee waarden kan aannemen: true of false.

Dus, laten we een variabele flag maken met deze betekenis: als deze gelijk is aan true, dan zit er een element 3 in de array, en als false, dan is er zo'n element niet.

Zet aanvankelijk de variabele flag op de waarde false - dat wil zeggen, we nemen aan dat het element 3 niet in de array zit:

$arr = [1, 2, 3, 4, 5]; $flag = false; // we nemen aan dat element 3 niet in de array zit

Vervolgens starten we een lus met een if, zoals we dat eerder deden. Als de lus ontdekt dat er in de array een element 3 is - dan zetten we de variabele flag op de waarde true en verlaten we de lus met break:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; // we nemen aan dat element 3 niet in de array zit foreach ($arr as $elem) { if ($elem === 3) { $flag = true; // element is er - herdefinieer de variabele $flag break; // we verlaten de lus } } ?>

Het antwoord op de vraag, of er 3 in de array zit of niet, kunnen we alleen na de lus geven. En dit antwoord hebben we al: na de lus kon de variabele flag false blijven of kon zijn waarde veranderen naar true, als de lus 3 in de array heeft ontdekt:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } // hier is de variabele $flag gelijk aan ofwel true, ofwel false ?>

Nu kunnen we na de lus een if maken, die naar de variabele flag kijkt en '+++' of '---' op het scherm toont:

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

Gegeven een array:

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

Controleer of er in deze array een element 'c' zit. Als die er is - toon dan '+++', en als die er niet is - toon dan '---'.

Schrijf code die een getal controleert of het een priemgetal is of niet. Een priemgetal is alleen deelbaar door één en door zichzelf, en is niet deelbaar door andere getallen.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren