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();
?>
超全局变量
超全局变量 — 超全局变量是在全部作用域中始终可用的内置变量
说明
PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。
这些超全局变量是:
更新日志
| 版本 | 说明 |
|---|---|
| 4.1.0 | 超全局变量被引入到 PHP. |
注释
Note: 变量可用性
默认情况下,所有的超全局变量都是可用的。但是,有一些指令会影响这种可用性。更多信息,参见文档 variables_order.
Note: 处理 register_globals
如果已经弃用的 register_globals 指令被设置为 on 那么局部变量也将在脚本的全局作用域中可用。例如, $_POST['foo'] 也将以 $foo 的形式存在。
相关信息,参见 FAQ “register_globals 对我有什么影响?”
Note: 可变变量
在函数或类方法中,超全局变量不能被用作可变变量。
lskatz at gmail dot com
10-Oct-2008 08:51
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();
?>
