Foros del Web » Programando para Internet » PHP »

Enviar el Variable no declarada a una funcion?

Estas en el tema de Enviar el Variable no declarada a una funcion? en el foro de PHP en Foros del Web. En parse_str(), uno puede enviar una variable sin declarar para que la funcion la utilize como arreglo, aqui el ejemplo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver ...
  #1 (permalink)  
Antiguo 08/09/2010, 13:11
 
Fecha de Ingreso: junio-2006
Mensajes: 147
Antigüedad: 17 años, 11 meses
Puntos: 1
Enviar el Variable no declarada a una funcion?

En parse_str(), uno puede enviar una variable sin declarar para que la funcion la utilize como arreglo, aqui el ejemplo:
Código PHP:
Ver original
  1. <?php
  2. $str = "first=value&arr[]=foo+bar&arr[]=baz";
  3. parse_str($str);
  4. echo $first;  // value
  5. echo $arr[0]; // foo bar
  6. echo $arr[1]; // baz
  7.  
  8. parse_str($str, $output);
  9. echo $output['first'];  // value
  10. echo $output['arr'][0]; // foo bar
  11. echo $output['arr'][1]; // baz
  12.  
  13. ?>

Si se fijan en el segundo caso se le mando $output a el parse_str, noten que puedo poner cualquier variable sin declarar como segundo argumento de la funcion y esta asumira el resto.

Como puedo pasarle una variable como argumento a una funcion y que esta me tome el nombre de la variable y no lo que contiene, me explico.

Seria muy bueno enviar la variable ($str,"output") y dentro de la funcion cojer ese string y convertirlo en variable, lo cual podria hacer lo mismo con ($str,"moises"), etc...

Pero como logro enviar ($str,$moises) y tomar la variable $moises dentro de la funcion y utilizarla, fijense que puedo enviar cualquier variable no solo $moises, y tambien noten que la variable no esta definida fuera de la funcion.

Como logro esto?
__________________
________________________________
Moisés Bretón
[email protected]
  #2 (permalink)  
Antiguo 08/09/2010, 13:22
 
Fecha de Ingreso: enero-2009
Ubicación: Neiva, Huila
Mensajes: 196
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Enviar el Variable no declarada a una funcion?

disculpa la pregunta para que quieres hacer esto?
  #3 (permalink)  
Antiguo 08/09/2010, 13:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Enviar el Variable no declarada a una funcion?

debes pasar la variable por referencia... (:
Código PHP:
function foo( &$bar)
{
  
$bar *= 3;
}

$x 4;
foo($x);

echo 
$x// 12 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 08/09/2010, 13:25
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
Respuesta: Enviar el Variable no declarada a una funcion?

Usa variables variables.

Saludos.
  #5 (permalink)  
Antiguo 08/09/2010, 13:26
 
Fecha de Ingreso: junio-2006
Mensajes: 147
Antigüedad: 17 años, 11 meses
Puntos: 1
Esto es una asignacion que tengo de mi Universidad el cual tengo que hacer mi propia funcion de parse_str() por ende tengo que hacer una funcion que funcione igual que esa.

Si pudieran ayudarme fuera muy bueno, porque tengo que terminar esto a mas tardar para manana.

Espero sus respuestas, gracias

Gracias por sus respuesta, lo probare y les dare mis resultados..

Gracias
__________________
________________________________
Moisés Bretón
[email protected]

Última edición por GatorV; 08/09/2010 a las 13:33
  #6 (permalink)  
Antiguo 08/09/2010, 13:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Enviar el Variable no declarada a una funcion?

definitivamente ya tenías la función en otro tema, si hubieras comenzado de que necesitabas replicar la funcionalidad sería otra cosa... (:

tan solo debes usar los conceptos que ya te han mencionado, y debes hacerlo sin globales, con el pase por referencia debe valer perfectamente...

un consejo sería que consultes el manual, ahí existen ejemplos, que al fin y al cabo son lo mismo que necesitas... y al final la implementación no difiere mucho...

http://php.net/parse_str
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 08/09/2010, 13:29
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Enviar el Variable no declarada a una funcion?

¿Algo así?
Código PHP:
Ver original
  1. /*
  2.   Edito:
  3.   Borre por ser asignación
  4. */
Se logra con variables variable
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 08/09/2010, 13:31
 
Fecha de Ingreso: enero-2009
Ubicación: Neiva, Huila
Mensajes: 196
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Enviar el Variable no declarada a una funcion?

Mmm...ya entendi dame un seg lo craneo =)
  #9 (permalink)  
Antiguo 08/09/2010, 13:37
 
Fecha de Ingreso: junio-2006
Mensajes: 147
Antigüedad: 17 años, 11 meses
Puntos: 1
Respuesta: Enviar el Variable no declarada a una funcion?

De verdad, muchisimas gracias a ustedes por ayudarme.

Me funciona perfectamente, ahora solo tengo que pensar en un algoritmo que me capture los arreglos.

Aunque me sale un Warning cuando no envio el segundo paramentro de la funcion, quisiera poder quitar eso, pero ya averiguare despues eso.

Gracias de nuevo por su ayuda!
__________________
________________________________
Moisés Bretón
[email protected]
  #10 (permalink)  
Antiguo 08/09/2010, 13:42
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
Respuesta: Enviar el Variable no declarada a una funcion?

Solo declaralo como opcional:
Código PHP:
Ver original
  1. function foo($bar, $baz = null) {
  2.  
  3. }

Saludos.
  #11 (permalink)  
Antiguo 08/09/2010, 13:51
 
Fecha de Ingreso: junio-2006
Mensajes: 147
Antigüedad: 17 años, 11 meses
Puntos: 1
Respuesta: Enviar el Variable no declarada a una funcion?

Gracias, eso resolvio mi problema, como dije solo me falta por leer los arreglos que manden dentro del string para esto pienso hacer lo siguiente.

"first=value&arr[]=foo+bar&arr[]=baz";

si me mandan esa cadena de caracteres, pienso fijarme cuando la variable tenga dentro del string "[]" los dos corchetes, luego pienso al string quitarle los corchetes y poner un contador para ir guardando esta como un string.

El unico problema es que si tengo una variable por ejemplo $var="arr[]", creo que no puedo utilizar $$var, porque el string tiene dos corchetes sin numeros.

Mas sin envargo si tengo $var="arr[]" y logro quitarle los dos "[]" y que me quede $var="arr", entonces si puedo utilizarlo como una variable y convertirla en arreglo.

Pero debo quitarle los corchetes a el string, ahora averiguare como hacerlo, si alguno de ustedes sabe mucho mejor para mi.

Gracias por sus respuestas!
__________________
________________________________
Moisés Bretón
[email protected]
  #12 (permalink)  
Antiguo 08/09/2010, 13:54
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Enviar el Variable no declarada a una funcion?

En el manual te enseñan como resolver ese problema http://php.net/manual/en/language.va...s.variable.php
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: enviar, funcion, variables
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 09:03.