[转] php中global和$GLOBALS[]的用法、解释、区别

http://www.phpthinking.com/archives/651

php语法中,很多人都认为global和$GLOBALS[]只是写法上面的差别,其实不然
根据官方的解释是
1.$GLOBALS[‘var’]是外部的全局变量本身
2.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;
}
test();
echo $var2;
?>



意外打印结果为2

为什么会打印结果为2呢?其实就是因为$var1的引用指向了$var2的引用地址。导致实质的值没有改变。
我们再来看一个例子吧。

0

阅读 评论 收藏 转载 喜欢 打印举报
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

    原文地址:https://www.cnblogs.com/linewman/p/9918895.html