仓酷云

标题: PHP教程之php $GLOBALS超全局变量剖析 [打印本页]

作者: 灵魂腐蚀    时间: 2015-1-16 22:11
标题: PHP教程之php $GLOBALS超全局变量剖析
看看西,人家这个编论坛,那个CMS,还有那啥CRM,我啥时候写一个呢?php中有一个不为良多人所用的超全局变量$GLOBALS。公道利用这个变量能使事情变得加倍无效率,本篇文章次要剖析一下这个超全局变量的用法和$GLOBALS和global的区分。
$GLOBALS界说:援用全局感化域中可用的全体变量(一个包括了全体变量的全局组合数组。变量的名字就是数组的键),与一切其他超全局变量分歧,$GLOBALS在PHP代码中任何中央老是可用的,本人能够经由过程打印$GLOBALS这个变量的了局就晓得了。
在PHP性命周期中,界说在函数体内部的所谓全局变量,函数外部是不克不及间接取得的。假如要在函数体内会见内部界说的全局变量,能够经由过程global声明大概间接利用$GLOBALS来举行会见,比方:
  1. <?php$var1=www.Alixixi.com;$var2=www.google.cn;test();functiontest(){$var1=taobao;echo$var1,<br/>;global$var1;echo$var1,<br/>;echo$GLOBALS[var2];}
复制代码
了局将打印为:
taobao
www.Alixixi.com
www.google.cn

上面次要申明一下global和$GLOBALS的区分:
$GLOBALS[var]是内部的全局变量自己,而global$var是内部$var的同名援用大概指针,也就是说global在函数发生一个指向函数内部变量的别号变量,而不是真实的函数内部变量,而$GLOBALS[]确的确实挪用的是内部的变量,函数表里会一直坚持分歧。上面经由过程例子申明一下:
  1. $var1=1;$var2=2;functiontest(){$GLOBALS[var2]=&$GLOBALS[var1];}test();echo$var2;
复制代码
打印了局为1
  1. $var1=1;$var2=2;functiontest(){global$var1,$var2;$var2=&$var1;}test();echo$var2;
复制代码
打印了局为2。为何会打印了局为2呢?实在就是由于$var1的援用指向了$var2的援用地点。招致本色的值没有改动。我们再来看一个例子吧。
  1. $var1=1;functiontest(){unset($GLOBALS[var1]);}test();echo$var1;
复制代码
由于$var1被删除,以是甚么器材都没有打印。
  1. $var1=1;functiontest(){global$var1;unset($var1);}test();echo$var1;
复制代码
打印了局为1。证实删除的只是别号援用,起自己的值没有遭到任何的改动。也就是说global$var实在就是$var=&$GLOBALS[var]。挪用内部变量的一一般名罢了。
您大概感乐趣的文章

培训的第二阶段,开始了PHP语言语法结构和应用的学习。
作者: 小妖女    时间: 2015-1-18 22:27
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
作者: 精灵巫婆    时间: 2015-1-24 12:30
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
作者: 灵魂腐蚀    时间: 2015-2-1 12:09
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
作者: 因胸联盟    时间: 2015-2-7 05:25
实践是检验自己会不会的真理。
作者: 海妖    时间: 2015-2-20 17:59
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
作者: 深爱那片海    时间: 2015-3-6 18:44
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
作者: 爱飞    时间: 2015-3-13 06:09
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
作者: 不帅    时间: 2015-3-13 06:09
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
作者: 兰色精灵    时间: 2015-3-20 14:34
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2