<?php
function test() {
$c = 2;
}
$a = 1;
$b = 2;
?>
上边的代码的$a和$b都在$GLOBALS里,与$GLOBALS['a']和$GLOBALS['B']是等价的,但$c 不是,他是函数的私有变量,不在$GLOBALS里,如下可知:
<?php
// 例子2
function test() {
$c = 2;
$GLOBALS['a'] = 'DDD';
}
$a = 1;
$b = 2;
test();
print $a;//此时输出的是DDD而不是1.
?>
有趣的是:$GLOBALS变量又是$GLOBALS变量的值,你会发现$GLOBALS
下有$GLOBALS,这个$GLOGALS下又有$GLOBALS,这样一直层层不断的套下去,很是有趣。
<?php
// 例子3
function test() {
$c = 2;
$GLOBALS['a'] = 'DDD';
}
$a = 1;
$b = 2;
test();
print_r($GLOBALS['GLOBALS']['GLOBALS']['GLOBALS']['GLOBALS']);
print_r($GLOBALS);
//以上两个打印的结果是一样的
?>