Questão nº 40

Questão de Tecnologia da Informação · CESGRANRIO BASA 02/2021 (nº 40)

CESGRANRIO2021Técnico Científico - Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Cver comentário ↓

Considere o seguinte fragmento de código em PHP.

<?php
$var = 2;
function primeira(&$var) { $var++;}
function segunda($var)   { $var++;}
function terceira()      { $var++;}
echo $var;
primeira($var); echo $var;
segunda($var);  echo $var;
terceira($var); echo $var;
?>

Qual será a saída gerada pelo fragmento de código aci-
ma?

Resposta comentada

Gabarito Alternativa C

Conceito-chave: Em PHP, & na declaração da função significa passagem por referência (a função altera a variável original), enquanto sem & é passagem por valor (a função trabalha com uma cópia). Além disso, uma função sem parâmetro declarado não enxerga variáveis globais automaticamente.

  • (A) Incorreta: Assumiria que terceira() incrementa a variável global, mas sem global $var ou $GLOBALS, ela usa uma variável local inexistente (não altera nada).
  • (B) Incorreta: Aplicaria incremento em terceira(), mas ela não recebe referência nem declara global, então não altera $var.
  • (C) Correta: primeira(&$var) incrementa a original (2→3); segunda($var) incrementa uma cópia (original continua 3); terceira() não tem acesso à variável global, então nada muda (continua 3). Saída: 2 (echo inicial) + 3 + 3 + 3 = 2333.
  • (D) Incorreta: Erra ao considerar que segunda() ou terceira() alteram a variável original, o que não ocorre.
  • (E) Incorreta: Somaria incrementos em todas as chamadas, ignorando a diferença entre valor, referência e escopo.

Armadilha da banca: O distrator mais tentador é a letra D (2334), pois o aluno acha que terceira() também incrementa, mas esquece que, sem global, a função cria uma variável local $var que não interfere na global. A pegadinha está em confundir escopo com passagem por referência: só primeira() tem o & que liga a função à variável original.

Fonte: CESGRANRIO BASA 02/2021 Técnico Científico - Tecnologia da Informação. 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