Avalie o código PHP abaixo.<?php$b = $a = 5;$c = $a--;$d ...

Próximas questões
Com base no mesmo assunto
Q2172423 Programação
Para responder à questão, considere a versão 8 da linguagem PHP.
Avalie o código PHP abaixo.
<?php $b = $a = 5; $c = $a--; $d = $b = ++$b; ?>
Após a execução do código, qual será o resultado da soma das variáveis "a", "b", "c" e "d"?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: C - 21

Para compreender a resolução desta questão, é essencial entender como as operações de atribuição e incremento/decremento funcionam em PHP, especialmente quando utilizadas em conjunto.

O trecho $b = $a = 5; estabelece que tanto $a quanto $b terão o valor de 5. Em PHP, a atribuição é feita da direita para a esquerda, então primeiro $a recebe 5, e em seguida $b recebe o valor de $a.

Na linha seguinte, $c = $a--;, a variável $c é atribuída ao valor atual de $a (que é 5), antes de $a ser decrementado devido ao operador de decremento pós-fixado --. Portanto, após essa operação, $c será 5 e $a será 4.

Continuando, $d = $b = ++$b; inclui um operador de incremento pré-fixado ++. Isso significa que $b é incrementado antes da atribuição ser realizada. Portanto, $b passa a ser 6 e em seguida $d também é atribuído ao valor de 6.

Com os valores finais de cada variável sendo:

  • $a = 4 (decrementado após ser usado para definir $c)
  • $b = 6 (incrementado antes de ser usado para definir $d)
  • $c = 5 (valor original de $a antes de ser decrementado)
  • $d = 6 (igual ao valor final de $b)

Somando todos os valores, temos:

4 (a) + 6 (b) + 5 (c) + 6 (d) = 21

Portanto, o resultado da soma das variáveis a, b, c e d após a execução do código é 21, o que torna a alternativa C a correta.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

$a= 5;

$b=5;

$c=5-- = 4;

$d= $b = ++5 = 6

Aqui a variável $b passa a ter um novo valor que é $6, já a variável $d recebe o mesmo valor que $b que é 6 . Portanto, a soma seria: 5+4+6+6= 21

Alternativa C

Pré e Pós Incremento

Se você deseja o pós-incremento, você coloca o operador no final da variável: $a++, que pode ser lido como "primeiro me dê $a, depois faça o incremento".

Já o pré-incremento, é só colocar antes da variável: ++$a, que pode ser lido como "primeiro incremente, depois me dê o valor de $a".

Pré e Pós Decremento

pré: --$a (primeiro subtraia, depois me dê o valor de $a);

pós: $a-- (primeiro me dê o valor de $a, depois subtraia).

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo