Com o código PHP abaixo entende-se que: <?php$a = ‘hello’...
Com o código PHP abaixo entende-se que:
<?php
$a = ‘hello’;
$$a = “world”;
?>
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: A - a variável $a
contem “hello” e foi criada a variável $hello
contendo “world”.
Para entendermos o porquê da alternativa A estar correta, precisamos mergulhar em um conceito específico do PHP conhecido como variáveis variáveis. Quando você tem uma variável, como $a
, e atribui a ela um valor que é também um nome de variável válido, ao prefixar essa variável com um segundo cifrão ($$
), você está criando uma nova variável com o nome do valor da variável original.
No exemplo dado, a variável $a
recebe inicialmente o valor "hello". Em seguida, a expressão $$a
é utilizada, o que efetivamente está criando uma nova variável cujo nome é o valor de $a
, isto é, $hello
. Essa nova variável $hello
é então atribuída com o valor "world".
Ao final da execução do código, temos duas variáveis definidas:
$a
que contém o valor "hello".$hello
que contém o valor "world", criada dinamicamente pela expressão$$a
.
Esse é um comportamento muito particular do PHP e pode ser fonte de confusão. As demais alternativas estão incorretas porque:
- A alternativa B sugere que o valor de
$a
mudaria para "world", o que não ocorre. - A alternativa C menciona um erro de sintaxe que de fato não existe no código apresentado.
- A alternativa D incorretamente se refere a
$$a
como uma constante, quando na verdade é uma variável criada dinamicamente. - A alternativa E sugere que a variável
$a
teria seu valor alterado para "$world", o que não é o caso.
Portanto, a compreensão correta do comportamento das variáveis variáveis no PHP é essencial para resolver esta questão, e é por isso que a alternativa A é a resposta certa.
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
faça esta questao
Assinale a alternativa correta. Dado o código PHP abaixo, o resultado da penúltima linha será:
$a = “e”;
$b = “a”;
$c = “b”;
$d = “c”;
$e = “d”;
$$$$$e;
?>
a)
a
b)
b
c)
c
d)
d
e)
e
http://php.net/manual/pt_BR/language.variables.variable.php
"$$a" vai pegar uma variável cujo o nome é o valor de "$a"
Como "$a = 'hello' ", então "$$a" vai retornar a variável chamada "$hello".
Como ela não existe, ela vai ser criada.
Daí "$$a = 'world' " é equivalente a "$hello = 'world' "
"echo $hello" vai imprimir 'world'
GABARITO A
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo