<?php $a = 1; $b = true; $c = array(1); var_dump($a ==...
<?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?
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:
var_dump($a == $b);- Aqui, vale a coerção de tipo: 1 (inteiro) é considerado igual atrue(booleano), pois ambos são "truthy". Logo, a saída étrue.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.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 retornafalse.var_dump($a !== $c);- Estamos verificando se$anão é identicamente igual a$c. Como um é inteiro e o outro é array, a expressão é verdadeira, resultando emtrue.
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 éfalsee 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