Variables variables
  
   A veces es conveniente tener nombres de variables variables. Dicho de
   otro modo, son nombres de variables que se pueden definir y usar
   dinámicamente. Una variable normal se establece con una sentencia como:
  
  
  
   Una variable variable toma el valor de una variable y lo trata como el
   nombre de una variable. En el ejemplo anterior,
   hola, se puede usar como el nombre de una variable
   utilizando dos signos de dólar. Es decir:
  
  
  
   En este momento se han definido y almacenado dos variables en el árbol de
   símbolos de PHP: $a, que contiene "hola", y
   $hola, que contiene "mundo". Es más, esta
   sentencia:
  
  
  
   produce el mismo resultado que:
  
  
  
   esto quiere decir que ambas producen el resultado: hola mundo.
  
  
   Para usar variables variables con arrays hay que
   resolver un problema de ambigüedad. Si se escribe
   $$a[1], el intérprete necesita saber si nos
   referimos a utilizar $a[1] como una variable, o si
   se pretendía utilizar $$a como variable y el índice [1]
   como índice de dicha variable. La sintaxis para resolver esta ambigüedad
   es: ${$a[1]} para el primer caso y
   ${$a}[1] para el segundo.
  
  
   También se puede acceder a las propiedades de una clase usando el nombre de propiedad variable.
   Este será resuelto dentro del ámbito del cual se hizo
   la llamada. Por ejemplo, en la expresión
   $foo->$bar, se buscará $bar en el ámibto
   local y se empleará su valor será como el nombre de la propiedad
   de $foo. Esto también es cierto
   si $bar es un acceso a un array.
  
  
   También se pueden usar llaves para delimitar de forma clara el nombre de la
   propiedad. Son muy útila al acceder a valores dentro una propiedad que
   contiene un array, cuando el nombre de la propiedad está compuesto de múltiples partes,
   o cuando el nombre de la propiedad contiene caracteres que de otro modo no son
   válidos (p.ej. desde json_decode()
   o SimpleXML).
  
  
   
    Ejemplo #1 Ejemplo de propiedad variable
    
<?php
class foo {
    var $bar = 'Soy bar.';
    var $arr = array('Soy A.', 'Soy B.', 'Soy C.');
    var $r   = 'Soy r.';
}
$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo $foo->$bar . "\n";
echo $foo->{$baz[1]} . "\n";
$start = 'b';
$end   = 'ar';
echo $foo->{$start . $end} . "\n";
$arr = 'arr';
echo $foo->{$arr[1]} . "\n";
echo $foo->{$arr}[1] . "\n";
?>
     
    El ejemplo anterior mostrará:
Soy bar.
Soy bar.
Soy bar.
Soy r.
Soy B.
    
    
  
  Advertencia
   
    Por favor tenga en cuenta que las variables variables no pueden usarse
    con los Arrays
    superglobales de PHP al interior de funciones o métodos de
    clase. La variable $this es también una variable
    especial que no puede ser referenciada dinámicamente.