Foros del Web » Programando para Internet » PHP »

Nombres de variables que contienen variables

Estas en el tema de Nombres de variables que contienen variables en el foro de PHP en Foros del Web. Bueno, la verdad es que estoy un poco bloqueado. Estoy desarrollando un script en el que el usuario puede definir un número indefinido de valores ...
  #1 (permalink)  
Antiguo 15/04/2008, 13:52
Avatar de sumolari  
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 18 años
Puntos: 18
Pregunta Nombres de variables que contienen variables

Bueno, la verdad es que estoy un poco bloqueado.

Estoy desarrollando un script en el que el usuario puede definir un número indefinido de valores (puede definir 5 valores, 10, 300, etc). Estos valores son cadenas de texto.

Estas cadenas de texto se almacenarán en unas variables, y luego irán a la base de datos.

Cada valor corresponde a un fila de la base de datos, es decir, tengo una tabla con 1 campo (en realidad son más, pero para solucionar esto sólo importa un campo) y tantas filas como variables quiera poner el usuario.

Me interesa almacenar esas cadenas de texto definidas por el usuario en variables, pero no sé qué nombre darles a las variables.
Había pensado algo como:
  • $var_1
  • $var_2
  • $var_3
Es decir, algo cómo:
Código PHP:
<?php
$n 
1;
do {
$var_$n $_POST["campo_con_los_valores_$n"];
$n++;
} while (
$_POST["campo_con_los_valores_$n"] != '');
?>
También probé lo mismo pero con array, y tampoco.

¿Alguna idea de cómo nombrar a las variables?
  #2 (permalink)  
Antiguo 15/04/2008, 14:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Nombres de variables que contienen variables

Hola sumolari,

Idealmente deberías de usar un arreglo, para almacenar los nombres, aunque si quieres nombrarlos así como los tienes debes de usar eval().

Saludos.
  #3 (permalink)  
Antiguo 15/04/2008, 14:32
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Nombres de variables que contienen variables

¡Hey! Y qué hay de

${'var'.$n}

?

Sé que debe ser más lento que un vector, pero funciona...


Saludos.
  #4 (permalink)  
Antiguo 15/04/2008, 23:35
Avatar de sumolari  
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 18 años
Puntos: 18
Re: Nombres de variables que contienen variables

¡¡Muchas gracias a los dos!!

Usando la idea que propuso alvlin he logrado crear variables con ese tipo de nombres... ahora me surgió una duda: ¿puedo hacer lo mismo pero con funciones?

He tratado de usar la función eval, pero no me aclaro mucho
  #5 (permalink)  
Antiguo 16/04/2008, 00:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Nombres de variables que contienen variables

siiiii!!!

mira...

$foo = "print_r"; // string
$bar = array('candy', 'sugar');

$foo($bar);
  #6 (permalink)  
Antiguo 16/04/2008, 05:38
Avatar de sumolari  
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 18 años
Puntos: 18
Re: Nombres de variables que contienen variables

Muchas gracias por las respuestas, pero lo cierto es que he logrado evitar tener que usar funciones con dos nombres usando un bucle while y el código de la función directamente.

El uso de la función era sustituir caracteres, he logrado que la variable que contenía el texto se actualizase durante el bucle while, haciendo que cada vez que se repetía el bucle se realizase una sustitución sobre el texto resultante de la anterior sustitución. Finalmente después del bucle con un simple return me ha bastado para devolver el texto que se debía mostrar.

Muchísimas gracias a todos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:00.