Foros del Web » Programando para Internet » PHP »

Nombrar variables

Estas en el tema de Nombrar variables en el foro de PHP en Foros del Web. Tengo un problema k supongo sea muy tonto pero no termino de hacerlo (soy bastante principiante en php). Os dejo el codigo de un ejemplo ...
  #1 (permalink)  
Antiguo 23/08/2007, 09:59
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 1 mes
Puntos: 2
Nombrar variables

Tengo un problema k supongo sea muy tonto pero no termino de hacerlo (soy bastante principiante en php). Os dejo el codigo de un ejemplo k sera mas facil de entender:

Código:
<?php 

$titulo_saludo = "hola holita vecinos";
$titulo_despedida = "hasta la vista";

$a = "saludo";
$b = "despedida";
echo $."titulo_".$a;

?>
Bueno seguro k a mas de uno le estan doliendo los ojos... jeje. Yo lo que querria con ese ejemplo es k se imprimiera "hola holita vecinos" pero no con un echo $titulo_saludo; sino de manera dinamica formando el nombre de la variable con el texto "titulo_" y luego sumandole el nombre de la variable $a. Muchas gracias!
PD: Sobra decir k el final del codigo, el echo $."titulo_".$a; no funciona...
  #2 (permalink)  
Antiguo 23/08/2007, 10:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Nombrar variables

Para eso usas eval:
Código PHP:
eval( 'echo $titulo_ ' $a ';' ); 
Saludos.
  #3 (permalink)  
Antiguo 23/08/2007, 11:44
 
Fecha de Ingreso: marzo-2005
Ubicación: Madrid
Mensajes: 233
Antigüedad: 19 años
Puntos: 5
Re: Nombrar variables

echo $."titulo_".$a; aqui titulo_ es una cadena de texto y no se puede acceder a una variable sumandole una cadena como tu as echo.

Mas sencillo (no se por que te complicas la vida)

$a = "lo que sea"; $b = "lo que sea";

echo $a;
  #4 (permalink)  
Antiguo 24/08/2007, 12:23
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 1 mes
Puntos: 2
Re: Nombrar variables

Muxas gracias GatorV pero dejando el codigo asi:

Código:
<?php 
$titulo_saludo = "hola holita vecinos";
$titulo_despedida = "hasta la vista";
$a = "saludo";
$b = "despedida";
eval( 'echo $titulo_ ' . $a . ';' ); 
?>
Me sale el siguiente error:

Código:
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /prueba.php(6) : eval()'d code on line 1
  #5 (permalink)  
Antiguo 24/08/2007, 12:36
Avatar de k4k4  
Fecha de Ingreso: junio-2007
Ubicación: Baja California, México
Mensajes: 120
Antigüedad: 16 años, 10 meses
Puntos: 6
Re: Nombrar variables

por qué no:
Código PHP:
$titulo 'titulo_' $a;

echo $
$titulo
? xD
  #6 (permalink)  
Antiguo 24/08/2007, 13:37
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: Nombrar variables

Lo correcto es lo siguinte:
Código PHP:
$titulo_saludo "hola holita vecinos";
$titulo_despedida "hasta la vista";

$a "saludo";
$b "despedida";
echo ${
'titulo_'.$a}; 
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #7 (permalink)  
Antiguo 25/08/2007, 10:11
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 1 mes
Puntos: 2
Re: Nombrar variables

Gracias nicolaspar, es justo lo k necesitaba. Un saludo
  #8 (permalink)  
Antiguo 25/08/2007, 10:30
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: Nombrar variables

No hay porque, es el método que más aplica, se puede usar dentro de strings:

Código PHP:
$bar1 'mundo';
$foo "1";
echo 
"hola {${'bar'.$foo}} "#Obvio hay 100 alternativas a esto. 

Y hasta en objetos (métodos y propiedades dinámicos):
Código PHP:
$rs->metodo_1 'hola';
$foo "_1";
echo 
$rs->{'metodo'.$foo}; 

Saludos
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #9 (permalink)  
Antiguo 31/08/2007, 05:15
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 1 mes
Puntos: 2
Re: Nombrar variables

Oye otra cosa, si kisiera tener esto:
Código:
	
$index['titulo'] = "Bienvenido";
$a=index;

$title = ${$a.'[titulo]'};
puesto k asi no me lo reconoce. He probado con comillas dobles, barras invertidas antes de los corchetes... y nada. Un saludo!
  #10 (permalink)  
Antiguo 31/08/2007, 07:13
 
Fecha de Ingreso: agosto-2007
Mensajes: 4
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Nombrar variables

Ya lo tengo! usa

Código PHP:
<?php 
$titulo_saludo 
"hola holita vecinos";
$titulo_despedida "hasta la vista";
$a "saludo";
$b "despedida";
eval( 
'echo $titulo_' $a ';' ); 
?>
El fallo que tiene el 1º código que te han puesto es un espacio en blanco detras de $titulo_ que no debería estar. Ahora ya funciona correctamente.

------------------------------------------


Guillermo Terrasa. Dpto Programación de Artvisual
http://www.artvisual.es
  #11 (permalink)  
Antiguo 31/08/2007, 08:40
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 1 mes
Puntos: 2
Re: Nombrar variables

Gracias Wargo, pero esa parte ya estaba arreglada. Lo k preguntaba ahora es esto:

Código PHP:
$index['titulo'] = "Bienvenido";
$a=index;

$title = ${$a.'[titulo]'}; 
puesto k asi no me lo reconoce. He probado con comillas dobles, barras invertidas antes de los corchetes... y nada. Un saludo y gracias!
  #12 (permalink)  
Antiguo 31/08/2007, 08:54
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: Nombrar variables

No es taaan complicado che, un poco de sentido común te faltaba nomás (con onda :)

Código PHP:
$index['titulo'] = "Bienvenido";
$a="index";
$title = ${$a}["titulo"]; 
__________________
Mi punto de partida es Que Bueno Lo Nuevo
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 19:43.