Questão nº 29
Questão de Tecnologia da Informação · FCC TRE-PR 2017 (nº 29)
FCC2017Técnico Judiciário - Área Apoio Especializado - Especialidade Programação de SistemasTecnologia da Informação
Gabarito: Cver comentário ↓
Considere o seguinte código PHP:
<?php
function calc(&$var)
{
$var++;
}
$a=5;
calc($a);
$a+=5;
echo $a;
?>
Ao executar o código, o valor exibido será
- A10.
- B7.
- C11. (alternativa correta)
- D6.
- E9.
Resposta comentada
Gabarito Alternativa C
Quando uma variável é passada para uma função por referência (indicado pelo &), a função trabalha diretamente com a variável original, e qualquer mudança dentro da função afeta a variável fora dela. Se fosse por valor, a função receberia apenas uma cópia, e a variável original não seria alterada.
- A) Incorreta: Esta seria a resposta se a passagem fosse por valor (sem o
&na função), onde$apermaneceria 5 apóscalc($a), e então5 + 5 = 10. - B) Incorreta: O cálculo não resulta neste valor.
- (C) Correta: Inicialmente,
$a = 5. A funçãocalc(&$var)recebe$apor referência. Dentro da função,$var++incrementa o valor de$apara6. Após a chamada da função,$aagora vale6. Em seguida,$a += 5adiciona 5 ao valor atual de$a, tornando-o6 + 5 = 11. Finalmente,echo $aexibe11. - D) Incorreta: Este seria o valor de
$aapós a chamada decalc($a), mas antes da operação$a+=5;. - E) Incorreta: O cálculo não resulta neste valor.
Fonte: FCC TRE-PR 2017 Técnico Judiciário - Área Apoio Especializado - Especialidade Programação de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.