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

search for in the

$GLOBALS> <预定义变量
[edit] Last updated: Fri, 25 May 2012

view this page in

超全局变量

超全局变量超全局变量是在全部作用域中始终可用的内置变量

说明

PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。

这些超全局变量是:

更新日志

版本 说明
4.1.0 超全局变量被引入到 PHP.

注释

Note: 变量可用性

默认情况下,所有的超全局变量都是可用的。但是,有一些指令会影响这种可用性。更多信息,参见文档 variables_order.

Note: 处理 register_globals

如果已经弃用的 register_globals 指令被设置为 on 那么局部变量也将在脚本的全局作用域中可用。例如, $_POST['foo'] 也将以 $foo 的形式存在。

相关信息,参见 FAQ “register_globals 对我有什么影响?

Note: 可变变量

在函数或类方法中,超全局变量不能被用作可变变量



add a note add a note User Contributed Notes 超全局变量
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 | stats | sitemap | contact | advertising | mirror sites