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();
?>
Superglobals
Superglobals — Superglobals 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.

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();
?>