Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida na expressão do If

Olá pessoal, tudo certo?

Meu código funcionou perfeitamente, não estou com nenhum problema quanto a funcionamento, entendi grande parte do conteúdo até chegar nessa expressão:

<?php if(array_key_exists('removido', $_GET) && $_GET['removido']=='true') { ?>
    <p class="alert-success">Produto apagado com sucesso.</p>
<?php } ?>

Queria saber se a minha linha de raciocínio está correta, quando eu chamo a função array_key_exists eu estou verificando se a chave removido está dentro do array $_GET && se removido é verdadeiro?

Outro Ponto é, um if já não verifica se uma condição é true ou false? Porque verificar isso de novo?

3 respostas
solução!

Olá, Alexandre, tudo certo, cara? =)

Sua linha de raciocínio está correta, sim. O if está verificando exatamente isso.

A questão de verificar o true ou false é a seguinte: o if recebe uma expressão que deve retornar true ou false. Observe que passamos como argumento duas expressões:

  1. array_key_exists('removido', $_GET)
  2. $_GET['removido'] == 'true'

Cada uma dessas expressões devolverá um valor que pode ser verdadeiro ou falso. Quando usamos o && no meio, estamos dizendo que o bloco do if só será executado quando ambas as expressões forem verdadeiras, ou seja, se a primeira for verdadeira mas a segunda falsa ou vice-versa, o bloco não é executado. Sacou? =)

Espero ter ajudado. =)

Abraço e bons estudos,

Fábio

Oi Alexandre, tudo certo e você?

Exatamente, nessa linha estamos verificando se a chave 'removido' esta no $_GET e se o valor relacionado a essa chave é igual a 'true'.

Boa observação! nesse caso, daria na mesma deixar o == ou não. Porque, segundo a tabela de comparação do php a string 'true' é igual ao boolean true!

Mas, sempre fique atento a isso. Pois um simples = a mais na comparação (===) leva em consideração, também, o tipo. Ou seja, se fizessemos:

$_GET['removido']==='true'

A comparação levaria em consideração, também, o tipo e poderia retornar false já que uma string não é igual a um booleano.

Espero ter ajudado na sua duvida.

Abraço e bons estudos =)

Valeu pessoal, ficou bem esclarecido, se pudesse daria solucionado para as duas.