Foros del Web » Programando para Internet » PHP »

Llamar a una variable

Estas en el tema de Llamar a una variable en el foro de PHP en Foros del Web. Hola, tengo una duda que supongo que será sencilla, pero no logro encontrar por ningún sitio. Yo tengo unas variables llamadas, por ejemplo $titulo1, $titulo2 ...
  #1 (permalink)  
Antiguo 02/11/2008, 04:17
 
Fecha de Ingreso: noviembre-2008
Mensajes: 3
Antigüedad: 15 años, 5 meses
Puntos: 0
Llamar a una variable

Hola, tengo una duda que supongo que será sencilla, pero no logro encontrar por ningún sitio.
Yo tengo unas variables llamadas, por ejemplo $titulo1, $titulo2 y $titulo3.

El caso es que yo quiero llamar a cada una dentro de un bucle for, en el que yo según sea el valor de $i dentro del bucle, se llame a la que corresponde. Es decir, que en la primera pasada se llame a la variable $titulo1, en la segunda a $titulo2 y en la tercera a $titulo3.

No soy capaz de definir el nombre de cada variable usando la $i del bucle, porque me lo coge como si fuera un string, y no el nombre de una variable.

Espero que se haya entendido la duda, muchas gracias!

Roberto
  #2 (permalink)  
Antiguo 02/11/2008, 04:27
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Llamar a una variable

Hola:

No sé si te refieres a un bucle foreach...

Código:
<?
foreach(array("a", "b", "c") as $x => $i)	echo "// $i \n";
?>
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 02/11/2008, 04:34
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Llamar a una variable

Hola:

Tal vez te sirva mejor usar "$$"...

Código:
<?
$a = "a"; $b = "b"; $c = "c";
foreach(array("a", "b", "c") as $x => $i)	echo "// ".$$i." \n";
?>
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 02/11/2008, 04:50
Avatar de Tokkara  
Fecha de Ingreso: junio-2008
Mensajes: 131
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: Llamar a una variable

Código PHP:
<?
for($i 0$i3$i++)
{
$n "titulo".$i;
echo $
$n;
}
Mira aqui para mas informacion: Variables variables

Saludos
__________________
Revolucionario controlador de plantillas para php
www.simphple.com
  #5 (permalink)  
Antiguo 02/11/2008, 06:05
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Llamar a una variable

Por aquello de aportar otra alternativa:

Código php:
Ver original
  1. <?php
  2.  
  3.     for ( $i = 0; $i < N ; $i++ ) // N es un valor arbitrario
  4.     {
  5.         switch ( $i%3 )
  6.         {
  7.             case 0:
  8.             // Trabajar con $titulo1
  9.             break;
  10.                
  11.             case 1:
  12.             // Trabajar con $titulo2
  13.             break;
  14.                
  15.             case 2:
  16.             // Trabajar con $titulo3
  17.             break;
  18.                
  19.             default: break;
  20.         }
  21.         // Aquí código común adicional si lo hubiera
  22.     }
  23. ?>

Un saludo.

Última edición por Deschamps; 02/11/2008 a las 06:15 Razón: El puñetero '%' se cambia por su código
  #6 (permalink)  
Antiguo 02/11/2008, 13:36
 
Fecha de Ingreso: noviembre-2008
Mensajes: 3
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Llamar a una variable

Muchas gracias, me habéis resuelto el problema con lo de las Variables variables. Era todo lo que necesitaba para que me funcionase, no me refería a usar un foreach o un switch, el problema era que no era capaz de llamar a una variable con el contenido de otra variable, y con el $$ ya está resuelto. Como mis variables en realidad eran arrays, al final me quedaría así:

$titulo= "titulo".$i;
echo ${$titulo}['campo1'];

Gracias a todos por las respuestas, saludos!
  #7 (permalink)  
Antiguo 02/11/2008, 14:30
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Llamar a una variable

Ciertamente. El tema de las "variables variables" es curioso (llevo poco con PHP y no lo había descubierto hasta leer este mismo hilo).

Leyendo el manual, no acabo de entender la siguiente frase: "Por favor tenga en cuenta que las variables variables no pueden usarse con las Matrices superglobales de PHP al interior de funciones o métodos de clase. ".

¿Podría alguien exponer un ejemplo de uso de variables variables con una matriz superglobal para hacerme una idea de a qué se refiere?

Gracias y un saludo.
  #8 (permalink)  
Antiguo 03/11/2008, 03:14
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Llamar a una variable

Hola:

Como ejemplo yo suelo usar para recibir datos de un formulario esta línea:

Código:
foreach($_GET as $datos => $item)	$$datos = $item;
Que también valdría con $_POST, $_SESSION, etc.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 03/11/2008, 11:06
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Llamar a una variable

Gracias por el ejemplo.

¿Y cuando comenta el manual "... al interior de funciones o métodos de clase.", quiere decir que declaraciones de este tipo no serían válidas dentro de un método?

Código:
$a = "_GET"
$b = "algo"

echo ${$a}[$b]
... ¿o a qué se refiere? Es que mirando la versión en inglés o los comentarios de usuarios tampoco he acabado de entender a qué se refiere la frase.

Un saludo.
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 22:23.