Home » PHP » ¿Cómo funcionan las variables de variables ($$) en PHP?

¿Cómo funcionan las variables de variables ($$) en PHP?

Símbolo $$

Aunque no se utiliza con frecuencia, es posible que nos encontremos con programas PHP que utilizan las variables de variables. ¿En qué consiste esta técnica? Quizá un ejemplo valga más que una definición.
<?php
// Variable de variable $$ (archivo file005.php)

$var = "uno";  // asigna "uno" a la variable de nombre $var 
$$var = "dos"; // asigna "dos" a la variable de nombre $uno

// $$var significa (en este caso) $uno
print ($var); // produce el texto: "uno" 
print ($uno); // produce el texto: "dos"
print ($$var); // produce el texto: "dos"

?>
A diferencia de lo que hicimos en las variables por referencia, en este caso se están definiendo dos variables ($var y $uno) que ocupan dos direcciones de memoria diferentes y con contenidos diferentes. La variable $var la utilizamos para poder definir la variable $uno sin nombrarla de manera directa.
 
Un caso más especial es la sintaxis de variables de variables aplicada para matrices ya que pueden surgir ambigüedades. Al escribir $$var[0] se debe dejar claro al intérprete de PHP si estamos intentando direccionarnos a una variable cuyo nombre está almacenado en la variable $var[0] o si lo estamos haciendo al elemento 0  de la matriz cuyo nombre está almacenado en la variable $var.  En el primer caso deberíamos codificar ${$var[0]} y en el segundo ${$var}[0]
Dicho de otra manera, si el índice de la matriz está fuera de las llaves el nombre de la variable (que, por lo tanto, es una matriz) está almacenado en una variable. Si el índice de la matriz está dentro de las llaves, el nombre de nuestra variable está almacenado en un elemento de una matriz.
izq sup der

Deja un comentario