Foros del Web » Programando para Internet » PHP »

Error de uso en variables globales....

Estas en el tema de Error de uso en variables globales.... en el foro de PHP en Foros del Web. Hola, soy un programador más bien novatillo de PHP aunque poco a poco voy haciendo mis cosillas... Estaba haciendo unas pruebas para empezar a costumbrarme ...
  #1 (permalink)  
Antiguo 16/06/2006, 04:19
Avatar de crcbad  
Fecha de Ingreso: enero-2005
Mensajes: 302
Antigüedad: 12 años, 11 meses
Puntos: 0
Error de uso en variables globales....

Hola, soy un programador más bien novatillo de PHP aunque poco a poco voy haciendo mis cosillas... Estaba haciendo unas pruebas para empezar a costumbrarme a usar includes con las funciones más comunes, en este caso, tengo un fichero tal que así en PHP:

Código PHP:
<?php 
include("accbd.php");
if(
Conectarse()) echo "Se ha conectado";
else echo 
"No se ha conectado";
echo 
"<br><br><br>";
if(
Desconectarse()) echo "Se ha desconecetado";
else echo 
"No se ha desconectado";
?>
Y en el otro fichero tengo:

Código PHP:
<?php
include("conf.php");

// Conexión a BBDD
function Conectarse()
{
echo 
$bdServidor;
 if (!(
$link=mysql_connect($bdServidor,$bdAdminUser,$bdAdminPass)))
 {
  echo 
"Error conectando a la base de datos. Revise la configuración.";
  if (!
mysql_select_db($bdBaseDatos,$link)) 
  {
   echo 
"Error seleccionando a la base de datos.Revise la configuración."
   return 
true
  }
 }
 
 return 
false;
}
// Desconexión a BBDD
function Desconectarse()
{
 if(!
mysql_close($link))
 {
  echo 
"Ha habido un error en la desconexión al Servidor. La instalación podría estar defectuosa.";
  return 
false;
 }
 
 else
  return 
true;
}
?>

Hasta ahí todo bien, el problema es que en sel segundo fichero tengo otro include a un fichero donde tengo registradas una serie de variables globales, si hago un echo fuera de las funciones, el valor de la variable la recojo bien del fichero incluído, pero si uso dentro de la función la variable como en el ejemplo que uso echo $bdServidor; dentro de la función Conectarse() la variable no llega, saliéndome error de PHP diciendo que la variable no está definidida, como puedo solventar esto? Alguién me puede echar una manito?

Gracias de antemano :)
__________________

:cool: [ http://eruben.sytes.net ] :cool:


Las dos frases que te ayudarán a salir adelante:
  • No hay mujer fea, solo copas de menos. :borracho:
  • Ante la duda, siempre coge la más tetuda. :arriba:
  #2 (permalink)  
Antiguo 16/06/2006, 13:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Estás sufriendo lo que se denomina "ambito de las variables" (o en ingles: scope) .. es decir .. donde puedes acceder a una variable.

Tu hablas de "variables gloables" .. no muestras el código donde las defines .. pero te aseguro que no son "globales" (como lo entiende PHP .. otra cosa es como "concepto" en el contexto de una aplicación).

Bien .. el caso es que a una función le debes pasar como parámetro tus variables en la definición de la función o bien declararlas como globales .. pero en la función:

Código PHP:
$variable_global "o mejor dicho .. que está fuera de mis funciones ...";


// o lo haces por parámetro: 
function nose($variable_global){
echo 
$variable_global;
}

// o la defines como global en la función:
function nose(){
global 
$variable_global;
echo 
$variable_global;

Más info y documentación al respecto en el manual de PHP sobre dicho tema:
http://www.php.net/manual/es/languag...bles.scope.php

(ahí veras que tambien puedes hacer referencia a $GLOBALS en tus funciones para referirte a una variable que se definió fuera de tu función ... tienes várias alternativas como veras).


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 20:48.