⊗ppPmLpFl 124 of 447 menu

Arbeid med flagg i PHP

Nå skal vi lære å arbeide med flagg. Et flagg er en spesiell variabel som bare kan ha to verdier: true og false. Med flagg kan man løse oppgaver som sjekker fravær av noe: for eksempel kan man sjekke om det i en array ikke finnes noe element med en bestemt verdi. La oss komme i gang.

La oss løse følgende oppgave: gitt en array med tall, sjekk om den inneholder et element med verdien 3 eller ikke. Hvis den gjør det - skriv ut '+++', hvis ikke - skriv ut '---'.

La oss først prøve å skrive ut '+++'. For å gjøre dette, la oss gå gjennom alle elementene i arrayen vår og med en if spørre - er det nåværende elementet lik verdien 3. Hvis det er likt - skriv ut '+++':

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

Men løsningen vår er ikke veldig bra: for hvis det i arrayen ikke er én verdi 3, men flere, så vil '+++' skrives ut flere ganger. La oss endre arrayen vår (la oss lage to elementer med verdien 3) og overbevise oss om dette:

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

La oss rette opp problemet: avslutt løkken med break, hvis elementet allerede er funnet:

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

La oss nå prøve å gjøre det slik at, hvis det i arrayen overhodet ikke er noen elementer med verdien 3, skal det skrives ut '---'. En vanlig misforståelse vil være å legge til else til vår if - i så fall vil '---' skrives ut for alle elementer som ikke er 3:

<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // skrives ut for element 3 } else { echo '---'; // skrives ut for elementene 1, 2, 4, 5 } } ?>

Så, ideen om å legge til else - er en dårlig ide, den fungerer ikke. For å løse oppgaver av denne typen (slike oppgaver forekommer ganske ofte) bruker man såkalte flagg.

Som nevnt ovenfor, er et flagg en variabel som kan ha to verdier: true eller false.

Så, la oss lage en variabel flag med følgende betydning: hvis den er lik true, da finnes det et element 3 i arrayen, og hvis false, da finnes det ikke et slikt element.

Innledningsvis setter vi variabelen flag til verdien false - det vil si at vi antar at elementet 3 ikke er i arrayen:

$arr = [1, 2, 3, 4, 5]; $flag = false; // antar at elementet 3 ikke er i arrayen

Deretter starter vi en løkke med en if slik som vi gjorde det tidligere. Hvis løkken oppdager at det i arrayen finnes et element 3 - da setter vi variabelen flag til verdien true og avslutter løkken med break:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; // antar at elementet 3 ikke er i arrayen foreach ($arr as $elem) { if ($elem === 3) { $flag = true; // elementet finnes - omdefinerer variabelen $flag break; // avslutter løkken } } ?>

Svaret på spørsmålet, om det i arrayen finnes 3 eller ikke, kan vi bare gi etter løkken. Og dette svaret har vi allerede: etter løkken kunne variabelen flag forbli false eller kunne ha endret sin verdi til true, hvis løkken oppdaget 3 i arrayen:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } // her er variabelen $flag lik enten true eller false ?>

Nå kan vi etter løkken lage en if, som vil se på variabelen flag og skrive ut på skjermen '+++' eller '---':

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

Gitt en array:

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

Sjekk om det i denne arrayen finnes et element 'c'. Hvis det finnes - skriv ut '+++', og hvis ikke - skriv ut '---'.

Skriv kode som vil sjekke et tall for om det er primtall eller ikke. Et primtall er bare delbart på én og på seg selv, og er ikke delbart på andre tall.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis