PHP Programación Tips

Nombres de variables dinámicos en PHP

[titulo]Variables con nombre dinámico en PHP[/titulo]

Como seguro que ya sabéis, PHP puede generar arrays que almacenen varios valores bajo el mismo nombre de variable, de tal manera que podamos llamar a un valor concreto conocida su posición:

<?php
     $mivariable = array("foo", "bar", "hello", "world");
     var_dump($mivariable );
?>

Pero si eso no nos sirve, y lo que [subraya_verde]queremos es que el nombre mismo de la variable vaya cambiado[/subraya_verde] cada vez, podemos recurrir a lo siguiente:

${"mivariable" . $i}

Esto posibilita crear cualquier bucle o iteración que de como resultado algo como:

[codigo]$mivariable1[/codigo], [codigo]$mivariable2[/codigo], [codigo]$mivariable3[/codigo], [codigo]$mivariable4[/codigo]…

 

Un ejemplo de un bucle para cambiar el nombre de la variable iterando y asignando un valor distinto a cada una de ellas sería:

$i = 0;
while(*La condición que queráis*) {
     $i++;
     ${"miraviable" . $i} = "El valor que quiera";
}

 

Otra forma de conseguir lo mismo es con [codigo]$$mivariable[/codigo].

El doble símbolo del dólar nos permite crear una variable cuyo nombre será el contenido de otra. Por ejemplo:

//Creo una variable y le asigno el valor 'hola'
$a = 'hola';

//Creo una segunda variable poniéndole el doble $$. Eso hará que se llame con el contenido de la primera, 'hola', pero tenga el contenido que le asignemos.
$$a = 'mundo';

//Esto imprime 'hola mundo'
echo "$a $hola";

//Pero esto también imprimirá 'hola mundo'
echo "$a ${$a}";

 

Y hasta aquí este pequeño tip. ¿Te ha servido de ayuda? ¡Ayúdanos tú ahora compartiendo este contenido en redes sociales!

 

Cristian Sarabia Martínez

Desde que a principios de los 90 mi padre desempolvó su Spectrum, no he dejado de probar y experimentar con la tecnología.

Enamorado del mundo web, Full Stack Developer de profesión y diseñador por devoción.

Ahora hago mis pinitos en esto del blogging para compartir con vosotros un poquito de todo lo que la comunidad me ha dado.

Escribir comentario

Haz clic aquí para dejar tu comentario