2011-11-07 19 views
6

En PHP quiero saber las diferencias entre GLOBAL y GLOBALS.¿cuál es la diferencia entre GLOBALS y GLOBAL?

Algunos ejemplos:

print_r($GLOBALS); 
+0

'$ GLOBALS' es una matriz,' global' es una palabra clave en PHP. Básicamente hacen lo mismo pero de una manera diferente –

+0

, pero ¿por qué no podemos acceder a las variables de sesión y cookie utilizando $ GLOBAL? Puedo acceder a las variables que he creado usando $ GLOBAL. – balaphp

+3

Porque eso no es para lo que está $ GLOBALS. $ GLOBALS es para variables definidas en el alcance global, ni más ni menos. Esa es la forma como es. –

Respuesta

13

que son dos cosas diferentes relacionadas con los mismos: variables globales.

$GLOBALS - PHP superglobal matriz que representa la tabla de variables globales accesible como una matriz. Porque es un superglobal, está disponible en todas partes.

Una matriz asociativa que contiene referencias a todas las variables que se definen actualmente en el alcance global de la secuencia de comandos. Los nombres de las variables son las claves de la matriz.

global - Palabra clave para importar una variable global específica en la tabla de variables locales.


Entonces preguntó:

Pero ¿por qué nosotros no podemos acceder a las variables de sesión y de la galleta usando $GLOBALS?

eso está mal, puede acceder a las variables de sesión y de la galleta usando $GLOBALS:

$GLOBALS['_SESSION']['session_variable_name'] 

Sin embargo $_SESSION es una superglobal así, por lo que no es necesario utilizar $GLOBALS ni global para acceder a la sesión variables de todas partes:

$_SESSION['session_variable_name'] 

Lo mismo ocurre con $_COOKIE.

2

$ GLOBALS es una matriz y global es una palabra clave para declarar o utilizar variables globales

2

Son dos cosas diferentes.

global es una palabra clave que indica que la variable es de ámbito global. P.ej. si está a punto de acceder a una variable dentro de una función que está definida afuera, necesitará usar la palabra clave global para hacerla accesible en la función.

$GLOBALS es un superglobal matriz. Superglobal simplemente significa que está disponible en todos los ámbitos a lo largo de una secuencia de comandos sin la necesidad de utilizar la palabra clave global.

1

$ GLOBALS: Una matriz asociativa que contiene referencias a todas las variables que actualmente están definidas en el alcance global de la secuencia de comandos. Los nombres de las variables son las claves de la matriz

GLOBAL/global es una palabra clave para establecer una variable global.

Referencias:

http://php.net/GLOBALS

http://php.net/global

Cuestiones relacionadas