欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

global 与 $GLOBALS 的区别

程序员文章站 2024-01-21 22:58:46
...

global 与 $GLOBALS 的区别

global的测试结果

global $variable;
$variable= 1;

function test(){
    global $variable;
    unset($variable);
    echo $variable.'<br />';
}
test();
echo $variable.'<br />';

浏览器结果:

Notice: Undefined variable: variable in D:\wnmp\nginx\www\test.php on line 18
1

上述结果可以看出,global可以在函数内引用,函数内对global出的更改不会影响外部的全局变量

下面是$GLOBALS的测试结果:

代码:

$GLOBALS['variable'] = 1;
echo $GLOBALS['variable'];
function test(){
    unset($GLOBALS['variable']);
    echo $GLOBALS['variable'];
}
test();
echo $GLOBALS['variable'];

结果:

1
Notice: Undefined index: variable in D:\wnmp\nginx\www\test.php on line 26

Notice: Undefined index: variable in D:\wnmp\nginx\www\test.php on line 29

第一个变量输出了结果1,函数内和执行函数之后的全局变量都有不存在变量的Notice提示,说明函数内的更改对外面的的全局变量有影响。

结论

global只是对全局变量做一个引用,函数内的更改只对本函数内的全局变量有影响,而$GLOBALS指向变量本身,函数的更改对外部的全局变量也有影响

相关标签: php 全局变量