Foros del Web » Programando para Internet » PHP »

Ejecutar Extract() en una funcion como globals?

Estas en el tema de Ejecutar Extract() en una funcion como globals? en el foro de PHP en Foros del Web. Hola, cuando trato de ejecutar extract() dentro de una funcion hay alguna manera de declarar estas variables como globales? Aqui el código: Código PHP: function  ...
  #1 (permalink)  
Antiguo 11/02/2016, 06:36
 
Fecha de Ingreso: julio-2002
Mensajes: 62
Antigüedad: 21 años, 8 meses
Puntos: 0
Ejecutar Extract() en una funcion como globals?

Hola, cuando trato de ejecutar extract() dentro de una funcion hay alguna manera de declarar estas variables como globales?

Aqui el código:
Código PHP:
function query($tabla){
$resultado mysql_query("SELECT * FROM $tabla");
$fila mysql_fetch_array($resultado);
extract($fila); //estas variables se declaran localmente en la funcion pero no globalmente
}

query(mitabla);
echo 
$nombredeusuario//no devuelve nada puesto que no esta declarada globalmente 
En su lugar tengo que llamar a la funcion y posteriormente poner el extract.
Código PHP:
function query($tabla){
$resultado mysql_query("SELECT * FROM $tabla");
$GLOBALS[fila] = mysql_fetch_array($resultado); //ahora si se declara como global el array de los resultado de la consulta
}


query(mitabla);
extract($fila);
echo 
$nombredeusuario
Esto ultimo es más pesado porque cada vez que quiera utilizar la funcion tengo que meter otra linea con extract. Alguna idea?
__________________
Si te he sido de utilidad, valora mi aportación.
  #2 (permalink)  
Antiguo 11/02/2016, 12:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ejecutar Extract() en una funcion como globals?

No hagas eso, es lo peor que he visto, y seguramente sólo para ahorrarte escribir caracteres.

Es mala practica lo que intentas hacer, aunque bueno, en todo caso podrías hacer return del array de datos dentro de la función y afuera hacer el extract:
Código PHP:
Ver original
  1. function foo() {
  2.   return array('x' => 'y');
  3. }
  4.  
  5. extract(foo());
  6.  
  7. echo $x; // y

PDTA: de verdad, un programador se ve muy mal abusando de globales, lo único que pones en evidencia es tu poca voluntad de querer hacer las cosas bien, y tu poco gusto por programar.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 11/02/2016, 13:33
 
Fecha de Ingreso: julio-2002
Mensajes: 62
Antigüedad: 21 años, 8 meses
Puntos: 0
Respuesta: Ejecutar Extract() en una funcion como globals?

Pues no lo sabia. Por que lo consideras que es tan malo?
Todas las variables tienen que definirse dentro de funciones entonces?
Pd. No trabajo como programador :p

Graciass
__________________
Si te he sido de utilidad, valora mi aportación.
  #4 (permalink)  
Antiguo 11/02/2016, 13:51
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ejecutar Extract() en una funcion como globals?

Cita:
Por que lo consideras que es tan malo?
Pues porque usar variables globales es mala practica, si supieras usar las funciones correctamente no tendrías la necesidad de usar globales.

Cita:
Todas las variables tienen que definirse dentro de funciones entonces?
Si piensas usar dichos valores fuera de la función entonces debes devolverlas con return, nada más.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: ambito, extract, global, local
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 11:13.