灵魂腐蚀 发表于 2015-1-16 22:11:47

PHP教程之php $GLOBALS超全局变量剖析

看看西,人家这个编论坛,那个CMS,还有那啥CRM,我啥时候写一个呢?php中有一个不为良多人所用的超全局变量$GLOBALS。公道利用这个变量能使事情变得加倍无效率,本篇文章次要剖析一下这个超全局变量的用法和$GLOBALS和global的区分。
$GLOBALS界说:援用全局感化域中可用的全体变量(一个包括了全体变量的全局组合数组。变量的名字就是数组的键),与一切其他超全局变量分歧,$GLOBALS在PHP代码中任何中央老是可用的,本人能够经由过程打印$GLOBALS这个变量的了局就晓得了。
在PHP性命周期中,界说在函数体内部的所谓全局变量,函数外部是不克不及间接取得的。假如要在函数体内会见内部界说的全局变量,能够经由过程global声明大概间接利用$GLOBALS来举行会见,比方:
<?php$var1=www.Alixixi.com;$var2=www.google.cn;test();functiontest(){$var1=taobao;echo$var1,<br/>;global$var1;echo$var1,<br/>;echo$GLOBALS;}了局将打印为:
taobao
www.Alixixi.com
www.google.cn
上面次要申明一下global和$GLOBALS的区分:
$GLOBALS是内部的全局变量自己,而global$var是内部$var的同名援用大概指针,也就是说global在函数发生一个指向函数内部变量的别号变量,而不是真实的函数内部变量,而$GLOBALS[]确的确实挪用的是内部的变量,函数表里会一直坚持分歧。上面经由过程例子申明一下:
$var1=1;$var2=2;functiontest(){$GLOBALS=&$GLOBALS;}test();echo$var2;打印了局为1
$var1=1;$var2=2;functiontest(){global$var1,$var2;$var2=&$var1;}test();echo$var2;打印了局为2。为何会打印了局为2呢?实在就是由于$var1的援用指向了$var2的援用地点。招致本色的值没有改动。我们再来看一个例子吧。
$var1=1;functiontest(){unset($GLOBALS);}test();echo$var1;由于$var1被删除,以是甚么器材都没有打印。
$var1=1;functiontest(){global$var1;unset($var1);}test();echo$var1;打印了局为1。证实删除的只是别号援用,起自己的值没有遭到任何的改动。也就是说global$var实在就是$var=&$GLOBALS。挪用内部变量的一一般名罢了。
您大概感乐趣的文章


[*]smarty模板中利用php函数和smarty模板中怎样对一个变量利用多个函数
[*]PHP经常使用的判别变量的函数
[*]PHP使用CurlFunctions完成多线程抓取网页和下载文件
[*]Thinkphp模板中经常使用的体系变量总结
[*]php中在变量和函数前加static关头字以后的区分
[*]php的内置变量DIRECTORY_SEPARATOR剖析
[*]PHP将网址快速体例保留到桌面
[*]PHP反省扫瞄器参数避免被SQL注进的函数
培训的第二阶段,开始了PHP语言语法结构和应用的学习。

小妖女 发表于 2015-1-18 22:27:36

小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。

精灵巫婆 发表于 2015-1-24 12:30:24

学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。

灵魂腐蚀 发表于 2015-2-1 12:09:42

装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。

因胸联盟 发表于 2015-2-7 05:25:11

实践是检验自己会不会的真理。

海妖 发表于 2015-2-20 17:59:06

微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。

深爱那片海 发表于 2015-3-6 18:44:21

装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。

爱飞 发表于 2015-3-13 06:09:22

当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,

不帅 发表于 2015-3-13 06:09:22

如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,

兰色精灵 发表于 2015-3-20 14:34:10

为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
页: [1]
查看完整版本: PHP教程之php $GLOBALS超全局变量剖析