Avalie o código PHP abaixo.<?php$b = $a = 5;$c = $a--;$d ...
<?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"?
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