A veces es conveniente tener nombres de variables variables. Dicho
de otro modo, son nombres de variables que se pueden establecer 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,
hello, se puede usar como el nombre de una
variable utilizando dos signos de dólar. p.ej.
En este momento se han definido y almacenado dos variables en el
árbol de sÃmbolos de PHP: $a, que
contiene "hello", y $hello, que contiene
"world". Es más, esta sentencia:
produce el mismo resultado que:
p.ej. ambas producen el resultado: hello
world.
Para usar variables variables con matrices, 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.
| Aviso |
Tener en cuenta que variables variables no pueden usarse con Matrices
superglobales. Esto significa que no se pueden hacer cosas
como ${$_GET}. Si buscais un método para
manejar la disponibilidad de superglobales y las antiguas
HTTP_*_VARS, podeis intentar referiros a ellas.
|