Sometimes it is convenient to be able to have variable variable names. That is, a variable name which can be set and used dynamically. A normal variable is set with a statement such as:

<?php
$a = 'hello';
?>

A variable variable takes the value of a variable and treats that as the name of a variable. In the above example, hello, can be used as the name of a variable by using two dollar signs. i.e.

<?php
$$a = 'world';
?>

At this point two variables have been defined and stored in the PHP symbol tree: $a with contents “hello” and $hello with contents “world”. Therefore, this statement:

<?php
echo "$a ${$a}";
?>

produces the exact same output as:

<?php
echo "$a $hello";
?>

i.e. they both produce: hello world.

In order to use variable variables with arrays, you have to resolve an ambiguity problem. That is, if you write $$a[1] then the parser needs to know if you meant to use $a[1] as a variable, or if you wanted $$a as the variable and then the [1] index from that variable. The syntax for resolving this ambiguity is: ${$a[1]} for the first case and ${$a}[1] for the second.

Class properties may also be accessed using variable property names. The variable property name will be resolved within the scope from which the call is made. For instance, if you have an expression such as $foo->$bar, then the local scope will be examined for $bar and its value will be used as the name of the property of $foo. This is also true if $bar is an array access.

Example #1 Variable function example

<?php
class foo {
var $bar = 'I am bar.';
}

$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo $foo->$bar . "\n";
echo $foo->$baz[1] . "\n";
?>

The above example will output:

I am bar.
I am bar.
Razones para cambiarse o actualizar a Windows 8 Windows 8 ya está a la vuelta de la esquina. El nuevo sistema operativo de Microsoft ya circula entre los fabricantes y su versión final para el gran ...
En 2014 habrá 1.000 millones de smartphones o teléfonos inteligentes.. La venta de smartphones a nivel mundial crecerán un 46% hasta los 687,9 millones de unidades este año y superarán los 1.000 millones en 2014. Este fue...
Trucos que seguro no conoces de Gmail El servicio de correo electrónico de Google, bien conocido como Gmail, es uno de los más extendidos y utilizados. Y es que contar con una cuenta de es...
#negocios: Estratégias para Negocios en Internet ¿Pero de verdad es tan fácil de montarte una empresilla tú mismo o con tu amigo de toda la vida invirtiendo en él una parte de tus ahorros, la ayuda d...
Que Son las killer-apps o killer application, existen las aplicaciones asesinas? Una aplicación asesina (del inglés: killer application, comúnmente abreviada killer-app) es una aplicación informática determinante, es decir, que su ...
HTML5rocks HTML5rocks, es una plataforma open source de Google en funcionamiento desde 2010 donde se reúnen variados recursos dedicados a tecnologías HTML5. R...
¿En qué consisten las pruebas A/B? Una prueba A/B le permite probar el rendimiento de dos (o más) versiones completamente distintas de una misma página. Comience con la página de prueba...
Windows 10 ha actualizado su asistente Cortada al idioma español La versión previa de Windows 10 ha recibido una nueva actualización. Y no es una actualización cualquiera, ya que esta nueva entrega nos trae por prim...
Que formato de imagen es mejor? PNG o JPG? El formato de imagen PNG se creó en 1995 como respuesta a algunos problemas de patentes del formato GIF. Originalmente PNG era el acrónimo de "PNG no ...
Fallo de Seguridad en Android confirmado por Google No son buenas noticias para Google y mucho menos para los usuarios de móviles o tablets con Android. Un equipo de investigación de la Universidad de...