Assinale a alternativa correta. Dado o código PHP abaixo, o...

Próximas questões
Com base no mesmo assunto
Q770396 Programação

Assinale a alternativa correta. Dado o código PHP abaixo, o resultado da penúltima linha será:

<?php

$a = “e”;

$b = “a”;

$c = “b”;

$d = “c”;

$e = “d”;

$$$$$e;

?>

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito Correto: E - e

Para entender o porquê da alternativa E ser a correta, precisamos explorar um conceito em PHP chamado de "variáveis variáveis". Esse recurso permite que você use strings para referenciar dinamicamente outras variáveis.

No código apresentado, cada variável é atribuída a uma string que corresponde ao nome de outra variável:

  • $a recebe "e";
  • $b recebe "a";
  • $c recebe "b";
  • $d recebe "c";
  • $e recebe "d";

Quando usamos $$$$$e, estamos fazendo um encadeamento de referências de variáveis, que vai sendo resolvido da direita para a esquerda. Vamos destrinchar isso:

  1. $e é "d" (então $$e é $d);
  2. $d é "c" (então $$$e ou $$d é $c);
  3. $c é "b" (então $$$$e ou $$$d ou $$c é $b);
  4. $b é "a" (finalmente, $$$$$e ou $$$$d ou $$$c ou $$b é $a);

No final desse processo, chegamos a $a, que foi definido como "e" no início do código. Portanto, a expressão $$$$$e resolve para o valor da variável $a, que é "e". Assim, o resultado da penúltima linha é a letra "e", tornando a alternativa E correta.

Este é um exemplo interessante de como as variáveis no PHP podem ser manipuladas de forma dinâmica e, embora o uso de variáveis variáveis possa ser poderoso, também pode tornar o código difícil de ler e manter. Por isso, em um ambiente de produção, é recomendado usá-las com cuidado.

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

Cada string "$" retorna a string anterior; 

Veja o exemplo tirado do php.net:


  //You can even add more Dollar Signs

  $Bar = "a";
  $Foo = "Bar";
  $World = "Foo";
  $Hello = "World";
  $a = "Hello";

  $a; //Returns Hello
  $$a; //Returns World
  $$$a; //Returns Foo
  $$$$a; //Returns Bar
  $$$$$a; //Returns a

  $$$$$$a; //Returns Hello
  $$$$$$$a; //Returns World

  //... and so on ...//

?>

$$$$$e = $a

$$$$e = $b

$$$e = $c

$$e = $d

$e = d

GABARITO A

Clique para visualizar este comentário

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