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

search for in the

$GLOBALS> <Predefined Variables
[edit] Last updated: Fri, 26 Oct 2012

view this page in

Superglobals

SuperglobalsSuperglobals are built-in variables that are always available in all scopes

Description

Several predefined variables in PHP are "superglobals", which means they are available in all scopes throughout a script. There is no need to do global $variable; to access them within functions or methods.

These superglobal variables are:

Changelog

Version Description
4.1.0 Superglobals were introduced to PHP.

Notes

Note: Variable availability

By default, all of the superglobals are available but there are directives that affect this availability. For further information, refer to the documentation for variables_order.

Note: Dealing with register_globals

If the deprecated register_globals directive is set to on then the variables within will also be made available in the global scope of the script. For example, $_POST['foo'] would also exist as $foo.

For related information, see the FAQ titled "How does register_globals affect me?"

Note: Variable variables

Superglobals cannot be used as variable variables inside functions or class methods.



$GLOBALS> <Predefined Variables
[edit] Last updated: Fri, 26 Oct 2012
 
add a note add a note User Contributed Notes Superglobals
serpent at paradise dot net dot nz 16-Jul-2012 01:27
You can go the other way as well i.e.

<?php
function test() {
       
$GLOBALS['foo'] = "Example content";
}

test();
echo
"<p>$foo</p>";
?>

This doesn't appear to be affected by register_globals, I have it switched off.
lskatz at gmail dot com 10-Oct-2008 08:51
Tibor:
It's not a good idea to use $_ENV unless you are specifying an environmental variable.  This is probably a better example that I found on another page in php.net

<?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();
?>
Tibor > rocketmachine.com 05-Oct-2008 10:00
You can use superglobals to make your variables available everywhere without declaring them global.

<?php

$_ENV
['mystring'] = 'Hello World';
$_ENV['myarray'] = array('Alpha', 'Bravo', 'Charlie');

function
test() {
    print
$_ENV['mystring'];
   
print_r($_ENV['myarray']);
}

test();

?>

 
show source | credits | sitemap | contact | advertising | mirror sites