<?php $a = 1; $b = true; $c = array(1); var_dump($a ==...

Próximas questões
Com base no mesmo assunto
Q2770675 Arquitetura de Software

<?php

$a = 1;

$b = true;

$c = array(1);

var_dump($a == $b);

var_dump($b == $c);

var_dump($a === $b);

var_dump($a !== $c);

?>

No código-fonte acima, qual seria a ordem dos valores booleanos apresentados?

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa Correta: D - true, true, false, true.

Para resolver essa questão, precisamos compreender o funcionamento das comparações em PHP, especialmente no que diz respeito ao uso dos operadores de igualdade (==) e identidade (===), além da comparação de tipos distintos.

Tema Central: A questão aborda a compreensão dos operadores de comparação em PHP, um tema crucial para analistas de tecnologia da informação que trabalham com desenvolvimento e manutenção de sistemas.

Resumo Teórico:

No PHP, o operador == verifica se os valores são iguais, mas não considera o tipo de dado. Já o operador === verifica se os valores e os tipos são iguais. A compreensão desses operadores é essencial para evitar erros lógicos em programas. Além disso, o PHP possui regras de coerção de tipo, onde valores de diferentes tipos podem ser considerados iguais em certas circunstâncias.

Explicação do Código:

  1. var_dump($a == $b); - Aqui, vale a coerção de tipo: 1 (inteiro) é considerado igual a true (booleano), pois ambos são "truthy". Logo, a saída é true.
  2. var_dump($b == $c); - true é considerado igual a um array com um elemento "truthy" (neste caso, o número 1). Assim, a saída é true.
  3. var_dump($a === $b); - Aqui, o operador de identidade verifica tanto o valor quanto o tipo. Como $a é inteiro e $b é booleano, a comparação retorna false.
  4. var_dump($a !== $c); - Estamos verificando se $a não é identicamente igual a $c. Como um é inteiro e o outro é array, a expressão é verdadeira, resultando em true.

Justificativa para a Alternativa Correta (D): A sequência correta dos valores booleanos de saída, considerando as explicações acima, é true, true, false, true.

Análise das Alternativas Incorretas:

  • A - true, true, true, false: A terceira comparação é incorreta, pois usa identidade e retorna false.
  • B - false, false, false, false: A primeira e segunda comparações retornam true, incorreto.
  • C - false, false, false, true: A primeira e segunda retornam true, incorreto.
  • E - false, false, true, true: A primeira e segunda comparações retornam true, mas a terceira comparação é false e a última é true.

Compreender esses conceitos ajuda a evitar erros comuns na programação e a escrever código mais robusto. Tenha sempre em mente as diferenças entre == e === no PHP.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo