Variables dinámicas con PHP [Ejemplo completo]

Variables dinámicas con PHP. PHP es un lenguaje de programación que nos permite usar nombres de variables dinámicas, ya sea de manera estática o generado mediante un ciclo array. Por lo tanto, podemos nombrar una variable con el valor almacenado en otra variable.

Es decir, una variable PHP contiene el nombre de otra variable. Sin embargo, vamos a suponer que deseamos crear una variable llamada $ciudad con el valor “Barcelona”. Veamos el ejemplo.

$variable = "ciudad";

Esta declaración crea una variable llamada «$variable» que contiene como valor «ciudad». A continuación, podemos declarar la siguiente variable.

$$variable = "Barcelona";

Analizando nos damos cuenta que el signo de dólar adicional ($) al principio del nombre de la variable. Esto indica una (variable variable). Esta declaración crea una nueva variable con el nombre que es el valor de la primera variable $variable, lo que resulta en lo siguiente:

$ciudad = "Barcelona";
//El valor de $variable no cambia.

Variables dinámicas con matrices y bucles PHP

Si deseamos crear variables dinámicamente, podemos hacerlo con la siguiente sintaxis usando el ciclo while:

$link = conectar();
$consulta = mysqli_query($link, "select nombre, alt from fotos where id_producto='$id' ");

$i = 0;
while($filas = mysqli_fetch_array($consulta, MYSQLI_ASSOC)) {
${"foto" . $i} = $filas['nombre'];
${"alt" . $i} = $filas['alt'];
$i++; 
}
desconectar($link);

Si lo ves un poco complicado, también podemos crear dos arrays en donde se puede ir almacenando los datos: Por lo tanto, de esta manera estarías creando variables dinámicamente pero dentro de array.

$link = conectar();
$consulta = mysqli_query($link, "select nombre, alt from fotos where id_producto='$id' ");

$i = 0;
$fotos = [];
$alts = [];
while($filas = mysqli_fetch_array($consulta, MYSQLI_ASSOC)) {
$fotos[$i] = $filas['nombre'];
$alts[$i] = $filas['alt'];
$i++; 
}
desconectar($link);

¿Cómo crear variables dinámicamente dentro de un while?

Podemos hacerlo con la siguiente sintaxis:

${nombre-de-variable}

Veamos un ejemplo:

$consulta2 = mysql_query("select nombre, alt from fotos where id_producto='$id' ");
$filas2 = mysql_fetch_array($consulta2);

$i = 0;
while($filas2 = mysql_fetch_array($consulta2)) {
$i++;
${"foto" . $i} = $filas2['nombre'];
${"alt" . $i} = $filas2['alt'];
}

Por consiguiente, también podrías crear dos arrays donde puedes ir almacenando los nombres y los alt, según el ejemplo.

$consulta2 = mysql_query("select nombre, alt from fotos where id_producto='$id' ");
$filas2 = mysql_fetch_array($consulta2);

$i = 0;
$fotos = [];
$alts = [];
while($filas2 = mysql_fetch_array($consulta2)) {
$i++;
$fotos[$i] = $filas2['nombre'];
$alts[$i] = $filas2['alt'];
}

Por último tambien se podría crear variables dinámicamente con eval() aunque es muy poco recomendable, también se puede con doble signo $$

<?php

$x = 'variable1';
$$x = '2'; // doble signo $ 
echo $variable1;

?>

Conclusión

En este artículo hemos aprendido a crear variables dinámicas usar ciclo WHILE con conexión a base de datos. Además, también podemos crear variables dinámicas con doble signo $$.

Espero que esta breve explicación les ayude en sus proyectos.

Sobre el autor

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio