PHP 全局变量global与$GLOBAL大详解

总结:

A:1全局变量相当于有3个变量,函数外部的变量,函数内部的变量,及$GLOBAL的超全局变量。

      ----$GLOBAL是全局唯一的,而$var在为全局变量的别名。

B:无论函数内部外部,只要曾经声明过全局变量,则$GLOBAL为全局的,无需再次声明;

C:在函数内部unset  $var1 不会影响外部的变量,以及$GLOBAL['var1'];

    ----在函数内部的变量 global $var1 应是全局变量在函数内的一个别名,

D:在函数外部unset($var1),$GLOBAL['var1']依然存在。

E:在函数外部 unset($GLOBALS['var1']) 后,$var1仍然存在;

F:如果在函数外部声明一个全局变量global $var,则$GLOBAL['var'] 指向同一地址。但是函数内部的$var 与其没有关系,除非使用global传递进来。

G:如果在函数内部声明一个全局变量global $var,则$GLOBAL['var'] 指向同一地址。但是外部的 $var 与其没有关系,除非使用global 传递过来。



1、如果想在PHP中使用全局变量,可参考下图:

---需要在外部用global声明,同时在函数内部进行声明,否则在函数内部会当局部变量。



2、在外部不用global则外部的就是不是全局变量,无法在函数内部使用:

----内部用了关键字global,在内部或外部$global['var1']、$global['var2]均为全局变量;



3、注释函数内部的global,则变量$var1 $var2 在函数内部的为局部变量,与外部互补干涉。则$GLOBALS为全局变量;


4、当不用global时,外部变量无法在函数内使用,内部变量无法影响外部函数,且无$GLOBALS可用;


5、unset($GLOBALS) 只会unset  $GLOBALS,函数内部的全局变量不受影响;


6、在函数内部unset 变量,只是把内部的变量unset掉了。

-----函数内的全局变量只是一个全局变量的别名而已。


7、&引用,就是改变了变量的地址值(变量的引用传递)。

--在函数中把$GLOBAL['var2']指向了 $GLABAL['var1'],所以在函数内部时均一致;

--在函数外部var1 与 $GLOBALS['var1']一致,所以这3个变量一致。全局变量var1在函数内外时均一致;

--在函数内部的var2 与外部的var2 为同一个变量,在内外时均一致;

--此时只是把 $GLOBALS['var2']的因为修改为了var1,其它变量的值均为变化。


  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜕变之痛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值