O $var (dólar único) é uma variável normal com o nome var que armazena qualquer valor como string, inteiro, float, etc.
O $$era (dólar duplo) é uma variável de referência que armazena o valor da variável $ dentro dela.Para entender melhor a diferença, vejamos alguns exemplos.
Exemplo 1
<?php $x = 'abc'; $$x = 200; echo $x.' <br/>'; echo $$x.' <br>'; echo $abc; ?>
Saída:
No exemplo acima, atribuímos um valor à variável x como abc . Valor da variável de referência $$x é atribuído como 200 .
Agora imprimimos os valores $x, $$x e $abc .
Exemplo2
<?php $x='U.P'; $$x='Lucknow'; echo $x. ' <br>'; echo $$x. ' <br>'; echo 'Capital of $x is ' . $$x; ?>
Saída:
No exemplo acima, atribuímos um valor à variável x como ACIMA . Valor da variável de referência $$x é atribuído como Sorte agora.
Agora imprimimos os valores $x, $$x e uma corda.
Exemplo3
<?php $name='Cat'; ${$name}='Dog'; ${${$name}}='Monkey'; echo $name. ' <br>'; echo ${$name}. ' <br>'; echo $Cat. ' <br>'; echo ${${$name}}. ' <br>'; echo $Dog. ' <br>'; ?>
Saída:
No exemplo acima, atribuímos um valor ao nome da variável Gato . Valor da variável de referência ${$nome} é atribuído como Cachorro e ${${$nome}} como Macaco .
Agora imprimimos os valores como $nome, ${$nome}, $Gato, ${${$nome}} e $ Cachorro.