您当前的位置: 首页 > 网站编程 > PHP教程 > php $GLOBALS超全局变量分析

php $GLOBALS超全局变量分析

作者:不详 来源:网络 发布时间: 2014-07-31 09:36 点击:
php中有一个不为很多人所用的超全局变量$GLOBALS。合理使用这个变量能使工作变得更加有效率,本篇文章主要分析一下这个超全局变量的用法以及$GLOBALS和global的区别。 $GLOBALS定义:引用全局作用域中可用的全部变量(一个包含了全部变量的全局组合数组。变量的名字就是

php $GLOBALS超全局变量分析

  php中有一个不为很多人所用的超全局变量$GLOBALS。合理使用这个变量能使工作变得更加有效率,本篇文章主要分析一下这个超全局变量的用法以及$GLOBALS和global的区别。

  $GLOBALS定义:引用全局作用域中可用的全部变量(一个包含了全部变量的全局组合数组。变量的名字就是数组的键),与所有其他超全局变量不同,$GLOBALS在PHP代码中任何地方总是可用的,自己可以通过打印$GLOBALS这个变量的结果就知道了。

  在PHP生命周期中,定义在函数体外部的所谓全局变量,函数内部是不能直接获得的。如果要在函数体内访问外部定义的全局变量,可以通过global声明或者直接使用$GLOBALS来进行访问,例如:

  $var1='www.Alixixi.com';

  $var2='www.google.cn';

  test();

  function test(){

  $var1='taobao';

  echo $var1,'

  ';

  global $var1;

  echo $var1,'

  ';

  echo $GLOBALS['var2'];

  }

  结果将打印为:

  taobao

  www.Alixixi.com

  www.google.cn

  下面主要说明一下global和$GLOBALS的区别:

  $GLOBALS['var']是外部的全局变量本身,而global $var是外部$var的同名引用或者指针,也就是说global在函数产生一个指向函数外部变量的别名变量,而不是真正的函数外部变量,而$GLOBALS[]确确实实调用的是外部的变量,函数内外会始终保持一致。下面通过例子说明一下:

  $var1=1;

  $var2=2;

  function test(){

  $GLOBALS['var2']=&$GLOBALS['var1'];

  }

  test();

  echo $var2;

  打印结果为1

  $var1=1;

  $var2=2;

  function test(){

  global $var1,$var2;

  $var2=&$var1;

  }

  test();

  echo $var2;

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

  $var1=1;

  function test(){

  unset($GLOBALS['var1']);

  }

  test();

  echo $var1;

  因为$var1被删除了,所以什么东西都没有打樱

  $var1=1;

  function test(){

  global $var1;

  unset($var1);

  }

  test();

  echo $var1;

  打印结果为1。证明删除的只是别名引用,起本身的值没有受到任何的改变。也就是说global $var其实就是$var=&$GLOBALS['var']。调用外部变量的一个别名而已。
分享到:
本文"php $GLOBALS超全局变量分析"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4