⊗ppPmLpFl 124 of 447 menu

Lavorare con i flag in PHP

Ora impareremo a lavorare con i flag. Un flag è una variabile speciale che può assumere solo due valori: true e false. Con l'aiuto dei flag è possibile risolvere problemi che verificano l'assenza di qualcosa: ad esempio, si può verificare che in un array non ci sia un elemento con un valore specifico. Iniziamo.

Risolviamo il seguente problema: dato un array con numeri, dobbiamo verificare se contiene un elemento con valore 3 o meno. Se presente - stampiamo '+++', se assente - stampiamo '---'.

Per iniziare, proviamo a stampare '+++'. Per fare questo, iteriamo attraverso tutti gli elementi del nostro array e con un if chiederemo - l'elemento corrente è uguale al valore 3? Se è uguale - stampiamo '+++':

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

Ma la nostra soluzione non è ottimale: infatti, se nell'array non ci fosse un solo valore 3, ma diversi, allora '+++' verrebbe stampato diverse volte. Modifichiamo il nostro array (mettiamo due elementi con valore 3) e verifichiamolo:

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

Risolviamo il problema: interrompiamo il ciclo con break, se l'elemento è già stato trovato:

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

Ora proviamo a fare in modo che, se nell'array non ci sono affatto elementi con valore 3, venga stampato '---'. Un errore comune sarebbe aggiungere else al nostro if - in questo caso '---' verrebbe stampato per tutti gli elementi che non sono 3:

<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // stamperà per l'elemento 3 } else { echo '---'; // stamperà per gli elementi 1, 2, 4, 5 } } ?>

Quindi, l'idea di aggiungere else è una cattiva idea, non funziona. Per risolvere problemi di questo tipo (problemi che si incontrano abbastanza spesso) si usano i cosiddetti flag.

Come accennato in precedenza, un flag è una variabile che può assumere due valori: true o false.

Quindi, creiamo una variabile flag con questo significato: se è uguale a true, allora nell'array c'è un elemento 3, mentre se è false, allora tale elemento non esiste.

Inizialmente impostiamo la variabile flag a false - cioè supponiamo che l'elemento 3 non sia presente nell'array:

$arr = [1, 2, 3, 4, 5]; $flag = false; // supponiamo che l'elemento 3 non sia nell'array

Poi eseguiamo un ciclo con un if, come facevamo in precedenza. Se il ciclo rileva che nell'array c'è un elemento 3 - allora imposteremo la variabile flag a true e usciremo dal ciclo con break:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; // supponiamo che l'elemento 3 non sia nell'array foreach ($arr as $elem) { if ($elem === 3) { $flag = true; // l'elemento c'è - ridefiniamo la variabile $flag break; // usciamo dal ciclo } } ?>

La risposta alla domanda se nell'array c'è 3 o meno, possiamo darla solo dopo il ciclo. E questa risposta la abbiamo già: dopo il ciclo la variabile flag potrebbe essere rimasta false o potrebbe aver cambiato il suo valore in true, se il ciclo ha rilevato 3 nell'array:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } // qui la variabile $flag è uguale a true o false ?>

Ora, dopo il ciclo, possiamo fare un if, che guarderà la variabile flag e stamperà a video '+++' o '---':

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

Dato l'array:

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

Verifica che in questo array ci sia l'elemento 'c'. Se presente - stampa '+++', se assente - stampa '---'.

Scrivi del codice che verifichi se un numero è primo o meno. Un numero primo è divisibile solo per uno e per se stesso, e non è divisibile per altri numeri.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta