首页 > 代码库 > PHP里global与$GLOBALS['']的区别
PHP里global与$GLOBALS['']的区别
根据官方的解释是
- $GLOBALS[‘var‘] 是外部的全局变量$var本身。
- global $var 是外部$var的同名引用,即这两个变量指向同一个值。
1 <?php 2 $var1 = 1; 3 $var2 = 2; 4 function test() { 5 $GLOBALS[‘var2‘] = &$GLOBALS[‘var1‘]; 6 } 7 8 test(); 9 echo $var2;10 ?>
打印结果为1
<?php$var1 = 1;$var2 = 2;function test(){ global $var1, $var2; $var2 = &$var1; echo $var2; $var2 = ‘snsgou.com‘;}test(); // 输出 1echo $var2; // 输出 2echo $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['']的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。