PHP
downloads | documentation | faq | getting help | mailing lists | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

$_SERVER> <Superglobals
Last updated: Fri, 05 Dec 2008

view this page in

$GLOBALS

$GLOBALSReferences all variables available in global scope

Description

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.

Examples

Example #1 $GLOBALS example

<?php
function test() {
    
$foo "local variable";

    echo 
'$foo in global scope: ' $GLOBALS["foo"] . "\n";
    echo 
'$foo in current scope: ' $foo "\n";
}

$foo "Example content";
test();
?>

The above example will output something similar to:

$foo in global scope: Example content
$foo in current scope: local variable

Notes

Note: This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. There is no need to do global $variable; to access it within functions or methods.

Note: Variable availability
Unlike all of the other superglobals, $GLOBALS has essentially always been available in PHP.



$_SERVER> <Superglobals
Last updated: Fri, 05 Dec 2008
 
add a note add a note User Contributed Notes
$GLOBALS
Pyornide
16-Oct-2008 11:43
I strongly recommend against using globals at all possible. It's a bad programming practice, and you're better off using references and passing them on construct to use them in the $this context. If you're worried about parameters, you can simply use an associative array to store any passed variables to it. Overall, the main idea is to avoid using globals.

http://www.phpit.net/article/using-globals-php/

Is a good article detailing other reasons why using the global scope is a very bad idea.
David
14-Aug-2008 02:47
Though you can use var_dump to output the value of $GLOBALS.
ravenswd at yahoo dot com
12-Aug-2008 10:02
Keep in mind that $GLOBALS is, itself, a global variable. So code like this won't work:

<?php
   
print '$GLOBALS = ' . var_export($GLOBALS, true) . "\n";
?>

This results in the error message: "Nesting level too deep - recursive dependency?"

$_SERVER> <Superglobals
Last updated: Fri, 05 Dec 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites