Questão nº 79
Questão de Tecnologia da Informação · FCC TCE-GO 2022 (nº 79)
FCC2022Analista de Controle Externo - Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Bver comentário ↓
Considere o bloco de código PHP abaixo.
<?php
$a = 122;
$b = "TCE-GO";
echo "Concurso " . $a + 3;
?>
Ao executar o código em um ambiente PHP em condições ideais será exibido na página somente:
- Auma mensagem de erro
- B3 (alternativa correta)
- CConcurso 125
- D125
- EConcurso 1223
Resposta comentada
Gabarito Alternativa B
No PHP, a precedência de operadores define a ordem em que as operações são executadas, e a associatividade resolve a ordem quando operadores têm a mesma precedência. Além disso, o PHP realiza juggling de tipos (conversão automática de tipos) quando um operador espera um tipo diferente do que recebe.
- (A) Incorreta: O PHP é bastante flexível com a conversão de tipos (juggling de tipos) e, neste caso, não geraria um erro fatal que impediria a exibição.
- (B) Correta: Os operadores
.(concatenação) e+(adição) possuem a mesma precedência e são avaliados da esquerda para a direita (associatividade à esquerda). Assim, a expressãoecho "Concurso " . $a + 3;é avaliada em duas etapas:- Primeiro,
"Concurso " . $aé executado:"Concurso " . 122resulta na string"Concurso 122". - Em seguida, a string resultante é usada na adição:
"Concurso 122" + 3. Quando o operador+é aplicado a uma string, o PHP tenta converter a string para um número. Como"Concurso 122"não começa com um valor numérico válido, ela é convertida para0. - Finalmente,
0 + 3é calculado, resultando em3. Este valor é então exibido.
- Primeiro,
- (C) Incorreta: Esta seria a resposta se o operador
+tivesse maior precedência que o operador.(concatenação), fazendo com que$a + 3(125) fosse calculado primeiro e depois concatenado com "Concurso ". Esta é a armadilha da banca, pois a intuição pode levar a pensar que operações aritméticas sempre vêm antes da concatenação, mas no PHP,.e+têm a mesma precedência. - (D) Incorreta:
125seria o resultado apenas de$a + 3, sem a concatenação ou a conversão de tipo da string. - (E) Incorreta:
Concurso 1223seria o resultado se o3fosse tratado como string e concatenado após$a, como emecho "Concurso " . $a . 3;.
Fonte: FCC TCE-GO 2022 Analista de Controle Externo - Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.