Crear variables dinámicas en PHP

Crear variables dinámicas en PHP

PHP te permite usar nombres de variables dinámicas, llamadas variables variables. Puedes nombrar una variable con el valor almacenado en otra variable. Es decir, una variable contiene el nombre de otra variable. Por ejemplo, suponiendo que deseas construir una variable llamada $ciudad con el valor «Madrid». Puedes utilizar la siguiente declaración:

$nombre_de_variable = "ciudad";

Esta declaración crea una variable que contiene el nombre que deseas asignar a una variable. Luego, usas la siguiente declaración:

$$nombre_de_variable = "Madrid";

Ten en cuenta 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 en $nombre_de_variable, lo que resulta en lo siguiente:

$ciudad = "Madrid";
//El valor de $nombre_de_variable no cambia.

El siguiente ejemplo muestra cómo funciona esta característica. El verdadero valor de las variables variables se vuelve claro cuando se utilizan con matrices y bucles.

Supongamos que deseas nombrar una serie de variables con los nombres de ciudades que tienen valores que son las poblaciones de las ciudades. Puedes usar este código:

<?php

$Barcelona = 550000;
$Sevilla = 98000;
$nombre_ciudad = "Barcelona";
echo "La cantidad de habitantes de $nombre_ciudad es ${$nombre_ciudad}";
$nombre_ciudad = "Sevilla";
echo "La cantidad de habitantes de $nombre_ciudad es ${$nombre_ciudad}";

//Salida 
// La cantidad de habitantes de Barcelona es 550000
// La cantidad de habitantes de Sevilla es 98000

?>

Ejemplos de variables dinámicas con matrices y bucles

Puedes crear variables dinámicamente con la siguiente sintaxis:

$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 ves que se te complica mucho, también podrías crear dos arrays donde puedes ir almacenando los datos, de esta manera también estarías creando variables dinámicamente pero dentro de arreglos, como puedes ver en el siguiente ejemplo:

$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);

¿Te ha servido el post? ¡Puedes escribirme tus dudas, consejos y recomendaciones en los comentarios! Si conoces a alguien que pueda servirle de ayuda este post, no olvides compartirlo.

Crear variables dinámicas en PHP
5 (100%) 1 vote[s]

Deja un comentario