PHP里global与$GLOBALS['']的区别
2014-12-23 11:34
579 查看
根据官方的解释是
$GLOBALS['var'] 是外部的全局变量$var本身。
global $var 是外部$var的同名引用,即这两个变量指向同一个值。
打印结果为1
test()函数中的$var1,$va2都是局部变量,只不过是加了global关键字后,分别引用指向全局变量$var1,$va2;
因为$var1被删除了,所以什么东西都没有打印。
打印了1。因为只是把引用变量global var1给删除了,不影响全局变量var1。
$GLOBALS['var'] 是外部的全局变量$var本身。
global $var 是外部$var的同名引用,即这两个变量指向同一个值。
<?php $var1 = 1; $var2 = 2; function test() { $GLOBALS['var2'] = &$GLOBALS['var1']; } test(); echo $var2; ?>
打印结果为1
<?php $var1 = 1; $var2 = 2; function test(){ global $var1, $var2; $var2 = &$var1; echo $var2; $var2 = 'snsgou.com'; } test(); // 输出 1 echo $var2; // 输出 2 echo $var1; // 输出 snsgou.com ?>
test()函数中的$var1,$va2都是局部变量,只不过是加了global关键字后,分别引用指向全局变量$var1,$va2;
$var2
= &
$var1
;是将global var2里存入global var1的地址,而不影响全局变量var1里存的地址。当 $var2 = &$var1; 时,局部变量$var2不再指向全局变量$val2,而重新指向全局变量$var1,换句话来说,局部变量$var2的改变,不会再影响到全局变量$val2,而会影响到重新指向的全局变量$val1
<?php $var1 = 1; function test(){ unset($GLOBALS['var1']); } test(); echo $var1; ?>
因为$var1被删除了,所以什么东西都没有打印。
<?php $var1 = 1; function test(){ global $var1; unset($var1); } test(); echo $var1; ?>
打印了1。因为只是把引用变量global var1给删除了,不影响全局变量var1。
相关文章推荐
- PHP中global与$GLOBALS['']的区别
- PHP中global与$GLOBALS['']区别
- PHP中global与$GLOBALS['']的区别
- PHP中关于global和$GLOBALS的区别
- PHP中global与$GLOBALS['']区别
- php中global和$GLOBALS 的区别
- PHP中global与$GLOBALS['']区别
- PHP中global和$GLOBALS[]的区别
- PHP中global与$GLOBALS['']区别
- PHP中global与$GLOBALS['']的区别
- php中global与$GLOBALS的用法及区别
- PHP中全局变量global和$GLOBALS[]的区别分析
- PHP中global和$GLOBALS[]的区别
- 小猪戏说PHP语言中global和$GLOBALS[]的区别
- php之global与$GLOBALS的区别
- php中$GLOBALS和global的区别
- php中global与$GLOBALS的用法及区别(转载)
- [PHP]全局变量:global与$GLOBALS的区别和使用
- PHP语言中global和$GLOBALS的区别(参考PHP手册整理)
- PHP中全局变量global和$GLOBALS[]的区别分析