Foros del Web » Programando para Internet » PHP »

no entiendo esto ${$index}

Estas en el tema de no entiendo esto ${$index} en el foro de PHP en Foros del Web. alguien podría decirme que significa esto, básicamente se lo de while y list pero no entiendo porque la variable index esta encerrada entre corchetes while ...
  #1 (permalink)  
Antiguo 04/06/2007, 21:45
 
Fecha de Ingreso: febrero-2005
Ubicación: Santo Domingo
Mensajes: 35
Antigüedad: 19 años, 2 meses
Puntos: 0
no entiendo esto ${$index}

alguien podría decirme que significa esto, básicamente se lo de while y list pero no entiendo porque la variable index esta encerrada entre corchetes

while (list($index,$var) = each($_GET)) {
${$index} = $var;
}
  #2 (permalink)  
Antiguo 04/06/2007, 21:59
 
Fecha de Ingreso: julio-2006
Ubicación: sevilla
Mensajes: 251
Antigüedad: 17 años, 10 meses
Puntos: 5
Re: no entiendo esto ${$index}

Tiene ser pinta de alguna manera de hacer una array o numeral , pero vete a saber, ya que al repetir el bucle lo unico que puede significar es que guarda varias valores, prueba a pintarlo con un echo


while (list($index,$var) = each($_GET)) {
${$index} = $var;
echo ${$index};
}
  #3 (permalink)  
Antiguo 05/06/2007, 06:00
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: no entiendo esto ${$index}

Es equivalente a $$index, podés verlo acá (subtítulo "sintaxis compleja")
http://www.php.net/manual/es/language.types.string.php

El manual recomienda NO usar esta forma a menos que sea dentro de una cadena entre comillas dobles, en ese caso las llaves sirven como una forma de decir "acá termina el nombre de la variable", por ejemplo:

"Hola ${nombre}ito, cómo estás?"

no es lo mismo que

"Hola $nombreito, cómo estás"

Ya que en el primer caso se especifica una variable $nombre, mientras que en el segunto php buscará una variable de nombre $nombreito

La particularidad de las llaves es que lo que está dentro de ellas es evaluado, por lo que se puede hacer algo como

${"Una_" . $variable}

(ver el la primer nota de usuario de http://www.php.net/manual/es/language.variables.php


Bueno, he ahí la teoría.
Lo que en la práctica hace el código que pegaste es crear en cada paso una variable cuyo nombre es $index (por ejemplo, si $index == 'hola', creará la variable $hola)
Esto puede hacerse también eliminando las llaves y escribiendo

$$index = $var;

Podés leer sobre eso en la página cuyo enlace pegué antes.



Saludos.
  #4 (permalink)  
Antiguo 05/06/2007, 10:03
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: no entiendo esto ${$index}

Son variables variables, lo que hace es recorrer GET y asignarlo en cada iteración a $index y $var, poniendo en $index el nombre de la variable, y en $var el valor de la variable. Por lo que si llamas a la pagina que contiene el código así: pagina.php?hola=mundo te creara la variable $hola con el valor mundo.

Ahora, para reemplazar eso tenes por ejemplo funciones como: import_request_variables
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #5 (permalink)  
Antiguo 05/06/2007, 12:09
 
Fecha de Ingreso: febrero-2005
Ubicación: Santo Domingo
Mensajes: 35
Antigüedad: 19 años, 2 meses
Puntos: 0
Re: no entiendo esto ${$index}

ok, ya entiendo todo.

Gracias.
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:14.