Foros del Web » Programando para Internet » PHP »

$var_$var = valor

Estas en el tema de $var_$var = valor en el foro de PHP en Foros del Web. Bueno como dise arriba tengo una pregunta es posibel hacer esto: $num = 1; $hora_$num = valor; o asi? $num = 1; $hora_ echo $num; ...
  #1 (permalink)  
Antiguo 02/08/2008, 00:30
 
Fecha de Ingreso: diciembre-2007
Mensajes: 927
Antigüedad: 16 años, 4 meses
Puntos: 12
$var_$var = valor

Bueno como dise arriba tengo una pregunta

es posibel hacer esto:

$num = 1;
$hora_$num = valor;

o asi?

$num = 1;
$hora_ echo $num; = valor;

como se puede?

salu2 y gracais de antemano
  #2 (permalink)  
Antiguo 02/08/2008, 02:51
Avatar de Fogox  
Fecha de Ingreso: abril-2008
Mensajes: 59
Antigüedad: 16 años
Puntos: 0
Respuesta: $var_$var = valor

??? como q no explicas mucho....

salute
  #3 (permalink)  
Antiguo 02/08/2008, 03:08
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Respuesta: $var_$var = valor

Creo entender que pretende asignar un valor a una variable de nombre compuesto por otras variables.

Si es eso, a ver si te sirve este ejemplo

Código PHP:
<?
$nombre 
"valor";
$num 1;
eval(
"\$$nombre"."_$num  = 'pepe';");
echo 
$valor_1;
?>
Saludos
  #4 (permalink)  
Antiguo 02/08/2008, 03:14
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: $var_$var = valor

No uses eval!

Edig: Yo te recomendaría que no hicieras eso y que usaras un vector, pero si realmente necesitas hacer eso, la sintaxis es así:

Código:
${$hora."_".$num}
En general, lee esto.
  #5 (permalink)  
Antiguo 02/08/2008, 03:20
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Respuesta: $var_$var = valor

Cita:
Iniciado por venkman Ver Mensaje
Código:
${$hora."_".$num}
En general, lee esto.
Ah, buenísimo

Cita:
Iniciado por venkman Ver Mensaje
No uses eval!

Edig: Yo te recomendaría que no hicieras eso
¿Hay algún problema concreto por usar eval?
  #6 (permalink)  
Antiguo 02/08/2008, 04:02
 
Fecha de Ingreso: julio-2008
Mensajes: 21
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: $var_$var = valor

Lo adecuado es usar "$$"

ejemplo:

Código PHP:
$el_nombre_de_mivariable $hora."_".$num;

echo $
$elnombre_de_mivariable 
para una función, sería algo más simple:
Código PHP:
function myfunc()
{
echo 
'has llamado a myfunc()';
}
$f 'myfunc';
$f(); 

Última edición por acido69; 02/08/2008 a las 04:07 Razón: amplio
  #7 (permalink)  
Antiguo 02/08/2008, 04:11
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Respuesta: $var_$var = valor

Cita:
Iniciado por acido69 Ver Mensaje
Lo adecuado es usar "$$"
gracias acido69
Entiendo que existiendo una forma concreta de hacerlo lo adecuado es usarla.
Sin embargo mantengo mi pregunta. ¿Hay algún problema concreto en usar eval? Más allá de que existe una forma específica de hacerlo sin usar eval.

Es que por la forma del comentario...
Cita:
Iniciado por venkman Ver Mensaje
No uses eval!

Edig: Yo te recomendaría que no hicieras eso [/code]
... parece que si se hace le vaya a explotar a uno el ordenador en la cara. Como si hubiera dicho de hacer un format c:\
  #8 (permalink)  
Antiguo 02/08/2008, 05:01
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: $var_$var = valor

Es poco elegante, es propenso a dar problemas, es feo, es... innecesario en este caso.
  #9 (permalink)  
Antiguo 02/08/2008, 05:07
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Respuesta: $var_$var = valor

Cita:
Iniciado por venkman Ver Mensaje
Es poco elegante, es propenso a dar problemas, es feo, es... innecesario en este caso.
Ya veo muy amable por tu explicación



saludos
  #10 (permalink)  
Antiguo 02/08/2008, 05:11
 
Fecha de Ingreso: julio-2008
Mensajes: 21
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: $var_$var = valor

el problema de usar Eval, es que en esas variables puedes meter cualquier cosa; es decir: si en esas variables te viene una conexión a mysql, lo ejecutará.

no se de donde sacas esas variables; pero aunque creas que las controlas, puede que alguien toque eso y te haga un estropicio muy grande
  #11 (permalink)  
Antiguo 02/08/2008, 05:19
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Respuesta: $var_$var = valor

Cita:
Iniciado por acido69 Ver Mensaje
el problema de usar Eval, es que en esas variables puedes meter cualquier cosa; es decir: si en esas variables te viene una conexión a mysql, lo ejecutará.

no se de donde sacas esas variables; pero aunque creas que las controlas, puede que alguien toque eso y te haga un estropicio muy grande
mmm vale, entiendo que tiene riesgo
Muchas gracias, acido69, es el tipo de explicación concreta que pedía
  #12 (permalink)  
Antiguo 02/08/2008, 06:03
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: $var_$var = valor

Ese realmente no es el problema, lo mismo te puede pasar sin usar eval. El problema real es que es poco elegante. Es propenso a dar problemas y promociona una forma de escribir código sucia y confusa.

Eval no funciona con funciones variables (el ejemplo $f() de acido69). Eval no se lleva bien con variables globales, o por lo menos no en todas las versiones/plataformas. Eval es lento (del orden de 10-15 veces más lento que la ejecución normal de código). Eval no encuentra llamadas que vayan a código que ha sido ofuscado con Zend Encoder. Los errores que se producen dentro del código pasado a eval son más difíciles de localizar.

La lista es larga, pero además es que en este caso es innecesario usar eval(). Si prefieres, tunait, te puedes quedar con esta cita:

Cita:
"If eval() is the answer, you're almost certainly asking the wrong question." -- Rasmus Lerdorf BDFL of PHP
Cita:
"Si eval() es la respuesta, casi seguro que estás haciendo la pregunta equivocada."
  #13 (permalink)  
Antiguo 02/08/2008, 06:13
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Respuesta: $var_$var = valor

Excelente explicación Ahí quería yo llegar. Gracias
  #14 (permalink)  
Antiguo 02/08/2008, 21:07
 
Fecha de Ingreso: diciembre-2007
Mensajes: 927
Antigüedad: 16 años, 4 meses
Puntos: 12
Respuesta: $var_$var = valor

Muchas gracias lo porbare y espero que me sirva

PD. Probare todas aver cual me funciona mejor :P

salu2
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 20:31.