what is the difference between GLOBALS and GLOBAL?
That are two different things related to the same: global variables.
$GLOBALS
- PHP superglobal array representing the global variable table accessible as an array. Because it's a superglobal, it's available everywhere.
An associative array containing references to all variables which are currently defined in the global scope of the script. The variable names are the keys of the array.
global
- Keyword to import a specific global variable into the local variable table.
Then you asked:
But why we cant access the session and cookie variables by using
$GLOBALS
?
That's wrong, you can access session and cookie variables by using $GLOBALS
:
$GLOBALS['_SESSION']['session_variable_name']
However $_SESSION
is a superglobal as well, so you don't need to use either $GLOBALS
nor global
to access session variables from everywhere:
$_SESSION['session_variable_name']
Same applies to $_COOKIE
.
They are two different things.
global
is a keyword which tells that the variable is from a global scope. E.g. if you're about to access a variable inside a function that's defined outside you'll need to use the global keyword to make it accessible in the function.
$GLOBALS
is a superglobal
array. Superglobal simply means that it is available in all scopes throughout a script without the need of using the global keyword.
$GLOBALS is an array and global is a keyword to declare or use global variables