⊗ppPmLpFl 124 of 447 menu

Werk met vlae in PHP

Nou sal ons leer om met vlae te werk. 'n Vlag is 'n spesiale veranderlike wat slegs twee waardes kan aanneem: true en false. Met behulp van vlae kan jy probleme oplos wat die afwesigheid van iets toets: byvoorbeeld, jy kan toets of daar nie 'n element met 'n sekere waarde in 'n skikking is nie. Kom ons begin.

Kom ons los die volgende probleem op: 'n skikking met getalle word gegee, ons moet toets of daar 'n element met die waarde 3 in is of nie. As daar is - druk ons '+++' uit, as daar nie is nie - druk ons '---' uit.

Laat ons eers probeer om '+++' uit te druk. Om dit te doen, sal ons deur al die elemente van ons skikking iter en met 'n if sal ons vra - is die huidige element gelyk aan die waarde 3. As dit gelyk is - druk ons '+++' uit:

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

Maar ons oplossing is nie baie goed nie: want as daar nie een waarde 3 in die skikking is nie, maar verskeie, sal '+++' verskeie kere uitgedruk word. Kom ons reg ons skikking (maak twee elemente met waarde 3) en oortuig onsself daarvan:

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

Kom ons los die probleem op: beëindig die lus met behulp van break, as die element reeds gevind is:

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

Kom ons probeer nou om dit so te maak dat, as daar glad geen elemente met die waarde 3 in die skikking is nie, '---' uitgedruk word. 'n Algemene misverstand sal wees om else by ons if te voeg - in hierdie geval sal '---' uitgedruk word vir alle elemente wat nie 3 is nie:

<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // sal op element 3 uitdruk } else { echo '---'; // sal op elemente 1, 2, 4, 5 uitdruk } } ?>

So, die idee om else by te voeg - is 'n slegte idee, dit werk nie. Om probleme van hierdie tipe op te los (sulke probleme kom redelik dikwels voor) gebruik mens sogenaamde vlae.

Soos reeds hierbo genoem, is 'n vlag so 'n veranderlike wat twee waardes kan aanneem: true of false.

So, kom ons maak 'n veranderlike flag met so 'n waarde: as dit gelyk is aan true, dan is daar 'n element 3 in die skikking, en as false, dan is daar nie so 'n element nie.

Aanvanklik stel ons die veranderlike flag op die waarde false - dit wil sê ons sal aanneem dat daar geen element 3 in die skikking is nie:

$arr = [1, 2, 3, 4, 5]; $flag = false; // aanvaar dat element 3 nie in die skikking is nie

Dan laat ons 'n lus loop met 'n if soos ons dit voorheen gedoen het. As die lus vind dat daar 'n element 3 in die skikking is - sal ons die veranderlike flag op die waarde true stel en uit die lus gaan met behulp van break:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; // aanvaar dat element 3 nie in die skikking is nie foreach ($arr as $elem) { if ($elem === 3) { $flag = true; // element is daar - herdefinieer veranderlike $flag break; // gaan uit die lus } } ?>

Die antwoord op die vraag, of daar 3 in die skikking is of nie, kan ons slegs na die lus gee. En hierdie antwoord het ons reeds: na die lus kon die veranderlike flag false bly of sy waarde na true verander het, as die lus 3 in die skikking gevind het:

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

Nou kan ons na die lus 'n if maak, wat na die veranderlike flag sal kyk en '+++' of '---' op die skerm sal uitdruk:

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

Gegee 'n skikking:

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

Toets of daar 'n element 'c' in hierdie skikking is. As daar is - druk '+++' uit, en as daar nie is nie - druk '---' uit.

Skryf kode wat 'n getal sal toets of dit priem is of nie. 'n Priemgetal is slegs deelbaar deur een en deur homself, en is nie deelbaar deur ander getalle nie.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp