⊗ppPmLpFl 124 of 447 menu

Lucrul cu flag-uri în PHP

Acum vom învăța să lucrăm cu flag-uri. Un flag - este o variabilă specială, care poate lua doar două valori: true și false. Cu ajutorul flag-urilor se pot rezolva sarcini care verifică absența a ceva: de exemplu, se poate verifica că într-un array nu există un element cu o anumită valoare. Să începem.

Să rezolvăm următoarea sarcină: este dat un array cu numere, trebuie să verificăm dacă în el există un element cu valoarea 3 sau nu. Dacă există - vom afișa '+++', dacă nu - vom afișa '---'.

Pentru început să încercăm să afișăm '+++'. Pentru aceasta vom parcurge toate elementele array-ului nostru și cu un if vom întreba - este egal elementul curent cu valoarea 3. Dacă este egal - vom afișa '+++':

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

Dar soluția noastră nu este foarte bună: dacă în array vor fi nu o singură valoare 3, ci mai multe, atunci '+++' se va afișa de mai multe ori. Să corectăm array-ul nostru (să facem două elemente cu valoarea 3) și să ne convingem de acest lucru:

<?php $arr = [1, 2, 3, 4, 3, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // va afișa de mai multe ori } } ?>

Să corectăm problema: vom încheia ciclul cu ajutorul break, dacă elementul a fost deja găsit:

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

Acum să încercăm să facem astfel încât, dacă în array nu există deloc elemente cu valoarea 3, să se afișeze '---'. O părere greșită comună va fi să adăugăm else la if-ul nostru - în acest caz '---' se va afișa pentru toate elementele care nu sunt 3:

<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // se va afișa pe elementul 3 } else { echo '---'; // se va afișa pe elementele 1, 2, 4, 5 } } ?>

Deci, ideea de a adăuga else - este o idee proastă, nefuncțională. Pentru rezolvarea sarcinilor de acest tip (astfel de sarcini se întâlnesc destul de des) se folosesc așa-numitele flag-uri.

După cum am menționat mai sus, un flag - este o variabilă, care poate lua două valori: true sau false.

Deci, să facem o variabilă flag cu următoarea semnificație: dacă este egală cu true, atunci în array există elementul 3, iar dacă false, atunci un astfel de element nu există.

Inițial vom seta variabila flag la valoarea false - adică vom considera, că elementul 3 nu se află în array:

$arr = [1, 2, 3, 4, 5]; $flag = false; // considerăm că elementul 3 nu se află în array

Apoi vom porni ciclul cu if așa cum am făcut anterior. Dacă ciclul va detecta că în array există elementul 3 - atunci vom seta variabila flag la valoarea true și vom ieși din ciclu cu ajutorul break:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; // considerăm că elementul 3 nu este în array foreach ($arr as $elem) { if ($elem === 3) { $flag = true; // elementul există - redefinim variabila $flag break; // ieșim din ciclu } } ?>

Răspunsul la întrebarea, dacă în array există 3 sau nu, îl putem da doar după ciclu. Și acest răspuns îl avem deja: după ciclu variabila flag poate să fi rămas false sau poate să-și fi schimbat valoarea în true, dacă ciclul a detectat în array 3:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } // aici variabila $flag este fie true, fie false ?>

Acum după ciclu putem face un if, care va analiza variabila flag și va afișa pe ecran '+++' sau '---':

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

Este dat un array:

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

Verificați dacă în acest array există elementul 'c'. Dacă există - afișați '+++', iar dacă nu - afișați '---'.

Scrieți un cod care va verifica un număr dacă este prim sau nu. Un număr prim se împarte doar la unu și la el însuși, și nu se împarte la alte numere.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge