php中的$GLOBALS与global的区别:
用$GLOBALS['index']可以直接引用全局变量。
如
$a=2;
$b=3;
function add()
{
$GLOBALS['z']=$GLOBALS['a']+$GLOBALS['b'];
}
echo $z;
因为$GLOBALS['index']中出现的z,所以就有了全局变量$z;
$GLOBAL是超全局变量。
global是在局部代码中(如函数中)在变量之前声明global,使之与外部的变量发生联系或成为全局变量。
eg:
$a=2;
$b=3;
function add()
{
global $a,$b,$z;
$z=$a+$b;
}
echo $z;
//结果:5;
$a,$b前加了global,就认为此时的$a,$b是外部的全局变量$a,$b.
如果不加global,那么就认为是局部变量,只是与外部的全局变量$a,$b重名。
在函数中直接声明一个在外部没有的$z;用global $z,此时的$z也是一个全局变量。
同样用$GLOBALS['z']也会产生一个全局变量$z;