Foros del Web » Programando para Internet » PHP »

Crear variable en funcion y usarla fuera de esta?

Estas en el tema de Crear variable en funcion y usarla fuera de esta? en el foro de PHP en Foros del Web. Buenas tardes, Quisiera una pequena ayuda lo mas pronto posible para este inconveniente, estoy rehaciendo la funcion parse_str como una tarea que se me asigno ...
  #1 (permalink)  
Antiguo 08/09/2010, 10:46
 
Fecha de Ingreso: junio-2006
Mensajes: 147
Antigüedad: 17 años, 11 meses
Puntos: 1
Crear variable en funcion y usarla fuera de esta?

Buenas tardes,

Quisiera una pequena ayuda lo mas pronto posible para este inconveniente, estoy rehaciendo la funcion parse_str como una tarea que se me asigno en mi Universidad, pero enfrento la dura prueba de sacar las variables que creo en una funcion para usarlas fuera de esta abajo el codigo y mas o menos una explicacion mas detallada:

Código:
<?php
$str="foo=bar&baz=boom&cow=milk&php=hypertext+processor";
function parse_strM($str = NULL, $div = NULL){
	
	if (!isset($div))
		$div="&";
	if (!isset($str))
		return "Error";
	
	$arr=explode($div,$str);
	foreach($arr as $arr_e){
		$var=explode("=",$arr_e);
		$name_v=$var[0];
		$$name_v=$var[1];
	}
//	echo $foo."<br />";
//	echo $baz."<br />";
//	echo $cow."<br />";
//	echo $php;
	
}

parse_strM($str);

//	echo $foo."<br />";
//	echo $baz."<br />";
//	echo $cow."<br />";
//	echo $php;


?>
Esta funcion esta solamente iniciada tengo mucho por hacer aun pero hasta que no pase este inconveniente no podre seguir, sucede, segun vemos y lo tengo en comentario, pero dentro de la funcion llamo unas variables que creo desde un string, dentro de la funcion estas variables funcionan perfectamente cuando hago el ECHO.

Pero abajo cuando llamo la funcion para que me cree estas variables y hago el ECHO dichas funciones no me funcionan y entiendo que no han sido definida, por ende como defino una variable Global dentro de una funcion sin definirla fuera de ella.

Espero haber sido lo mas claro posible, pueden siquieren copiar el codigo y quitandole las barras de comentarios y probar que me refiero.

Gracias de antemano.
__________________
________________________________
Moisés Bretón
[email protected]
  #2 (permalink)  
Antiguo 08/09/2010, 10:51
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Crear variable en funcion y usarla fuera de esta?

//....declaralas afuera como global
  #3 (permalink)  
Antiguo 08/09/2010, 10:55
 
Fecha de Ingreso: marzo-2010
Ubicación: Cali
Mensajes: 203
Antigüedad: 14 años, 1 mes
Puntos: 5
Respuesta: Crear variable en funcion y usarla fuera de esta?

dentro de la funcion y al inicio de esta declara global seguido del nombre de la variable.

ejemplo: global $mivariable, $otravariable;
intenta con eso. Saludos
  #4 (permalink)  
Antiguo 08/09/2010, 10:56
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Respuesta: Crear variable en funcion y usarla fuera de esta?

Aquí está claro como se hace (modificador global).

http://php.net/manual/es/language.variables.scope.php
  #5 (permalink)  
Antiguo 08/09/2010, 11:00
 
Fecha de Ingreso: junio-2006
Mensajes: 147
Antigüedad: 17 años, 11 meses
Puntos: 1
Respuesta: Crear variable en funcion y usarla fuera de esta?

Ok, al parecer no fui claro, o no entiendo bien sus respuestas, si se fijan en el $str, este tiene un string que es una cadena de datos

$str="foo=bar&baz=boom&cow=milk&php=hypertext+proc essor";

Esa cadena de datos tengo que dividirla y crear las variables que lleguen, por ejemplo, como ven foo=bar y baz=boom, etc... Entonces, tengo que dividirlo y crear una variable con esos nombres o sea,

$foo="bar"
$baz="boom"

Si yo mantara otro string a con otras variables, sin importar el nombre de la variable, la funcion tiene que crearme esa variable y que yo pueda utilizarlo fuera de la misma.

Por ende, como no se el nombre de la variable que voy a crear, no puedo declararla, por eso uso una variable llamada $name_v el cual es el nombre de la variable y $$name_v le asigno el valor.

Ej.

$name_v='foo'
$$name_v='bar'

Lo que quiere decir que $foo='bar'

Espero haber sido mas claro.

Gracias por sus respuestas
__________________
________________________________
Moisés Bretón
[email protected]
  #6 (permalink)  
Antiguo 08/09/2010, 11:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Crear variable en funcion y usarla fuera de esta?

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

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 08/09/2010, 11:09
 
Fecha de Ingreso: junio-2006
Mensajes: 147
Antigüedad: 17 años, 11 meses
Puntos: 1
Respuesta: Crear variable en funcion y usarla fuera de esta?

Conozco esa funcion, y me encantaria usarla, pero en este caso mi asignacion es hacer una funcion equivalente a parse_str().

Y eso es lo que estoy tratando de hacer, si pudieras ayudarme te lo agradeceria.
__________________
________________________________
Moisés Bretón
[email protected]
  #8 (permalink)  
Antiguo 08/09/2010, 11:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Crear variable en funcion y usarla fuera de esta?

el único problema que tienes es desconocer del contexto de las variables....

ya que por naturalidad las variables que asignes dentro de una función son consideradas locales, y no globales....

te invito a leer lo siguiente:
http://www.php.net/manual/en/languag...bles.scope.php

adicionalmente ya te han mencionado que uses el operador global o bien, usar $GLOBALS para establecer las variables fuera del contexto local....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 08/09/2010, 11:17
 
Fecha de Ingreso: junio-2006
Mensajes: 147
Antigüedad: 17 años, 11 meses
Puntos: 1
Respuesta: Crear variable en funcion y usarla fuera de esta?

Yo lei ese pequeno manual sobre variables, pero en todos tengo que definir la variable antes de usarla en la funcion, pero la funcion que hago es la que crea las variables, por ende no puedo definir antes de usarlas.

Tratare de ver si con $GLOBALS puedo utilizarlo, hasta ahora el unico inconveniente que presento es no saber que variables son las que estoy manejando.

El codigo esta hay, si quieres puedes probarlo y esas teorias ponerlas en practica.

Gracias por tu respuesta, saludos
__________________
________________________________
Moisés Bretón
[email protected]
  #10 (permalink)  
Antiguo 08/09/2010, 11:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Crear variable en funcion y usarla fuera de esta?

Código PHP:
$str="foo=bar&baz=boom&cow=milk&php=hypertext+processor";
parse_str($str);
echo 
$foo
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 08/09/2010, 11:25
 
Fecha de Ingreso: junio-2006
Mensajes: 147
Antigüedad: 17 años, 11 meses
Puntos: 1
Respuesta: Crear variable en funcion y usarla fuera de esta?

Como dije a inicios del TEMA, estoy buscando hacer mi propia funcion "parse_str()", se como funciona y les agradezco que me la mencionen ahora para mi solucion.

Pero como dije, estoy buscando hacerla yo mismo SIN UTILIZAR "PARSE_STR()"

Gracias por sus respuestas!
__________________
________________________________
Moisés Bretón
[email protected]
  #12 (permalink)  
Antiguo 08/09/2010, 11:32
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: Crear variable en funcion y usarla fuera de esta?

Ya te indicaron usa global:
Código PHP:
Ver original
  1. function foo() {
  2.          $vars = array( "foo" => "bar" );
  3.          foreach ($vars as $var => $value) {
  4.                  global $$var;
  5.                  $$var = $value;
  6.          }
  7. }
  8.  
  9. foo();
  10. echo $foo;

Saludos.
  #13 (permalink)  
Antiguo 08/09/2010, 11:52
 
Fecha de Ingreso: junio-2006
Mensajes: 147
Antigüedad: 17 años, 11 meses
Puntos: 1
Respuesta: Crear variable en funcion y usarla fuera de esta?

No saben como les agradezco su ayuda, efectivamente, creo que fui un poco tonto y disculpenme por no haberlos entendido, GatoV de verdad tienes razon ya me lo habian dicho, pero tu ejemplo fue mas que claro.

Gracias enormemente por ayudarme ya esta resuelto mi problema.

De nuevo GRACIAS!
__________________
________________________________
Moisés Bretón
[email protected]
  #14 (permalink)  
Antiguo 08/09/2010, 12:00
Avatar de triibhals  
Fecha de Ingreso: agosto-2010
Mensajes: 93
Antigüedad: 13 años, 8 meses
Puntos: 1
De acuerdo Respuesta: Crear variable en funcion y usarla fuera de esta?

Cita:
Iniciado por GatorV Ver Mensaje
Ya te indicaron usa global:
Código PHP:
Ver original
  1. function foo() {
  2.          $vars = array( "foo" => "bar" );
  3.          foreach ($vars as $var => $value) {
  4.                  global $$var;
  5.                  $$var = $value;
  6.          }
  7. }
  8.  
  9. foo();
  10. echo $foo;

Saludos.
Si no te gusta el foreach Utiliza un While

Etiquetas: fuera, 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 17:38.