⊗ppPmLpFl 124 of 447 menu

Trabalhando com flags em PHP

Agora vamos aprender a trabalhar com flags. Uma flag é uma variável especial que só pode assumir dois valores: true e false. Com as flags, podemos resolver problemas que verificam a ausência de algo: por exemplo, podemos verificar se não há um elemento com um valor específico em um array. Vamos começar.

Vamos resolver o seguinte problema: dado um array com números, verifique se há nele um elemento com o valor 3 ou não. Se houver - exiba '+++', se não - exiba '---'.

Para começar, vamos tentar exibir '+++'. Para isso, vamos percorrer todos os elementos do nosso array e com um 'if' vamos perguntar - o elemento atual é igual ao valor 3? Se for igual - exibimos '+++':

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

Mas nossa solução não é muito boa: pois se no array houver não um valor 3, mas vários, então '+++' será exibido várias vezes. Vamos alterar nosso array (fazer dois elementos com o valor 3) e verificar isso:

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

Vamos corrigir o problema: encerraremos o ciclo com break, se o elemento já for encontrado:

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

Agora vamos tentar fazer com que, se não houver elementos com o valor 3 no array, seja exibido '---'. Um equívoco comum seria adicionar else ao nosso if - neste caso, '---' será exibido para todos os elementos que não são 3:

<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // exibirá no elemento 3 } else { echo '---'; // exibirá nos elementos 1, 2, 4, 5 } } ?>

Então, a ideia de adicionar else - é uma ideia ruim, que não funciona. Para resolver problemas desse tipo (tais problemas são bastante comuns) são usadas as chamadas flags.

Como mencionado acima, uma flag é uma variável que pode assumir dois valores: true ou false.

Então, vamos criar uma variável flag com o seguinte significado: se for igual a true, então há um elemento 3 no array, e se for false, então não há tal elemento.

Inicialmente, vamos definir a variável flag como false - ou seja, vamos assumir que o elemento 3 não está no array:

$arr = [1, 2, 3, 4, 5]; $flag = false; // assumimos que o elemento 3 não está no array

Em seguida, iniciaremos um ciclo com um if da mesma forma que fizemos anteriormente. Se o ciclo detectar que no array há um elemento 3 - então definiremos a variável flag como true e sairemos do ciclo com break:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; // assumimos que o elemento 3 não está no array foreach ($arr as $elem) { if ($elem === 3) { $flag = true; // elemento existe - redefinimos a variável $flag break; // saímos do ciclo } } ?>

A resposta para a questão, se há 3 no array ou não, só podemos dar após o ciclo. E essa resposta nós já temos: após o ciclo, a variável flag pode ter permanecido false ou pode ter mudado seu valor para true, se o ciclo detectou 3 no array:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } // aqui a variável $flag é igual a true ou false ?>

Agora, após o ciclo, podemos fazer um if que verificará a variável flag e exibirá na tela '+++' ou '---':

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

Dado o array:

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

Verifique se há neste array um elemento 'c'. Se houver - exiba '+++', e se não - exiba '---'.

Escreva um código que verifique se um número é primo ou não. Um número primo é divisível apenas por um e por ele mesmo, e não é divisível por outros números.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar