Foros del Web » Programando para Internet » PHP »

variables globales

Estas en el tema de variables globales en el foro de PHP en Foros del Web. No sé si es que no me entero del tema de las variables globales o es que sí me entero pero me parece raro. He ...
  #1 (permalink)  
Antiguo 16/08/2009, 05:07
Avatar de PacoRuiz  
Fecha de Ingreso: abril-2009
Mensajes: 254
Antigüedad: 15 años
Puntos: 3
variables globales

No sé si es que no me entero del tema de las variables globales o es que sí me entero pero me parece raro.

He visto este código en un tutoria:

<?php
$a = 1;
$b = 2;

function Sum()
{
global $a, $b;

$b = $a + $b;
}

Sum();
echo $b;
?>

<?php
$a = 1;
$b = 2;

function Sum()
{
$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
}

Sum();
echo $b;
?>

Lo entiendo pero me parece muy raro, lo que me parece raro es que en primer lugar se defina una variable como local, y luego en otro lado se defina la misma variable como global y se acceda al valor que tenía la local.

¿Qué pasa entonces si se define en dos sitios dos locales con el mismo nombre y se intenta acceder a la variable de ese nombre como global? ¿No puedo definir una variable como global desde primera hora y acceder desde cualquier sitio?

La cuestión es que yo en su época (ya soy algo viejecillo) lo que aprendí fue C, y teniendo en mente el C los ejemplos anteriores son cuando menos extraños.

Yo lo que quiero hacer por ahora es el típico sitio web con contraseña evitando al listillo que accede a la página restringida porque conoce la URL, y usar una global para tener claro que el usuario se logeó como está mandado.
  #2 (permalink)  
Antiguo 16/08/2009, 05:27
 
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 8 meses
Puntos: 10
Respuesta: variables globales

Te aconsejo intentes EVITAR usar variables globales ya que en general son una mala practica de programacion.
  #3 (permalink)  
Antiguo 16/08/2009, 13:43
Avatar de PacoRuiz  
Fecha de Ingreso: abril-2009
Mensajes: 254
Antigüedad: 15 años
Puntos: 3
Respuesta: variables globales

Me da la impresión de que no he expresado con claridad lo que quiero saber. ¿No se define desde el principio una variable como global?

Voy a decir cómo yo entiendo el tema, a ver si es así o no: Uno define una variable, por ejemplo $login en la página principal desde donde se logean los visitantes y al consultarla desde otra página la consulto como $GLOBALS["login"] y puedo hacer por ejemplo if $GLOBALS["login"] = "no" die().

¿Es así?
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:13.