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:

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ão echo "Concurso " . $a + 3; é avaliada em duas etapas:
    1. Primeiro, "Concurso " . $a é executado: "Concurso " . 122 resulta na string "Concurso 122".
    2. 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 para 0.
    3. Finalmente, 0 + 3 é calculado, resultando em 3. Este valor é então exibido.
  • (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: 125 seria o resultado apenas de $a + 3, sem a concatenação ou a conversão de tipo da string.
  • (E) Incorreta: Concurso 1223 seria o resultado se o 3 fosse tratado como string e concatenado após $a, como em echo "Concurso " . $a . 3;.

Fonte: FCC TCE-GO 2022 Analista de Controle Externo - Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho