El $var (un solo dólar) es una variable normal con el nombre var que almacena cualquier valor como cadena, entero, flotante, etc.
El $$era (doble dólar) es una variable de referencia que almacena el valor de la variable $ en su interior.Para entender mejor la diferencia, veamos algunos ejemplos.
Ejemplo 1
<?php $x = 'abc'; $$x = 200; echo $x.' <br/>'; echo $$x.' <br>'; echo $abc; ?>
Producción:
En el ejemplo anterior, hemos asignado un valor a la variable. X como a B C . Valor de la variable de referencia $$x es asignado como 200 .
Ahora hemos impreso los valores. $x, $$x y $abc .
Ejemplo2
<?php $x='U.P'; $$x='Lucknow'; echo $x. ' <br>'; echo $$x. ' <br>'; echo 'Capital of $x is ' . $$x; ?>
Producción:
En el ejemplo anterior, hemos asignado un valor a la variable. X como ARRIBA . Valor de la variable de referencia $$x es asignado como Lucknow.
Ahora hemos impreso los valores. $x, $$x y una cuerda.
Ejemplo3
<?php $name='Cat'; ${$name}='Dog'; ${${$name}}='Monkey'; echo $name. ' <br>'; echo ${$name}. ' <br>'; echo $Cat. ' <br>'; echo ${${$name}}. ' <br>'; echo $Dog. ' <br>'; ?>
Producción:
En el ejemplo anterior, hemos asignado un valor al nombre de la variable. Gato . Valor de la variable de referencia ${$nombre} es asignado como Perro y ${${$nombre}} como Mono .
Ahora hemos impreso los valores como $nombre, ${$nombre}, $Gato, ${${$nombre}} y $Perro.