`
天梯梦
  • 浏览: 13630226 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

PHP: 关键字global 和 超全局变量$GLOBALS的用法、解释、区别

阅读更多

$GLOBALS 是一个关联数组,每一个变量为一个元素,键名对应变量名,值对应变量的内容。$GLOBALS 之所以在全局范围内存在,是因为 $GLOBALS 是一个超全局变量。

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的引用地址。导致实质的值没有改变。
我们再来看一个例子吧。

<?php
    $var1 = 1;
    function test(){
        unset($GLOBALS['var1']);
    }
    
    test();
    echo $var1;
?>

 


点击阅读全文

更多参考:

变量范围

PHP: extract 将数组array的key变为变量 ( extract函数的定义和用法 )

HP7革新与性能优化

JQuery: 使用Ajax赋值给全局变量失败异常的解决方法,ajaxSetup, jquery ajax global

 

 

本文转自: PHP: 关键字global 和 超全局变量$GLOBALS的用法、解释、区别
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
分享到:
评论

相关推荐

    全局变量中$GLOBALS['']和global的区别

    全局变量中$GLOBALS['']和global的区别

    PHP中$GLOBALS与global的区别详解

    PHP中$GLOBALS和global都可以实现全局变量的功能,所以很多人都认为global和$GLOBALS[]只是写法上面的差别,其实不然。$GLOBALS 是一个超级全局变量,其实是一个数组,而global 则是一个声明全局变量的关键字! 一、...

    PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析

    本文实例讲述了PHP超级全局变量用法。分享给大家供大家参考,具体如下: $GLOBALS $_SERVER $_REQUEST $_POST $_GET $_FILES $_ENV $_COOKIE $_SESSION 咱们这次就来聊聊$GLOBALS&$_SERVER&$_REQUEST这三个...

    PHP中全局变量global和$GLOBALS[]的区别分析

    一、举例比较 例一: 复制代码 代码如下: &lt;?php $var1 = 1; function test(){ unset($GLOBALS[‘var1’]); } test(); echo $var1; ?&gt; 因为$var1被删除了,所以什么东西... 二、解释 global $var其实就是&$GLOBALS

    PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】 <font color=red>原创</font>

    主要介绍了PHP global全局变量经典应用与注意事项,结合实例形式分析了php中global全局变量的功能、使用方法及相关操作注意事项,并附带了$GLOBALS用法作为对比,需要的朋友可以参考下

    PHP超全局变量实现原理及代码解析

    超全局变量在 PHP 4.1.0 中引入,是在全部作用域中始终可用的内置变量。 PHP 超全局变量 PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $...

    PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】 原创

    使用global在方法里面声明外部变量为全局变量,即可以调用该变量。 示例1. global基本用法 &lt;?php $a=1; $b=2; test_global(); function test_global() { global $a,$b; echo $a+$b; //输出3 } 示例2. global...

    PHP全局变量与超级全局变量区别分析

    本文分析了PHP全局变量与超级全局变量区别。分享给大家供大家参考,具体如下: 全局变量就是在函数外面定义的变量。不能在函数中直接使用。因为它的作用域不会到函数内部。所以在函数内部使用的时候常常看到类似...

    php多次include后导致全局变量global失效的解决方法

    本文实例讲述了php多次include后导致全局变量global失效的解决方法。分享给大家供大家参考。...一个有效的方法是,如果你决定将一个变量当作多个文件的全局变量,那么使用$GLOBALS数组总是有效的。比如上

    PHP中$GLOBALS[HTTP_RAW_POST_DATA]和$_POST的区别分析

    本文分析了PHP中$GLOBALS[‘HTTP_RAW_POST_DATA’]和$_POST的区别。分享给大家供大家参考,具体如下: $_POST:通过 HTTP POST 方法传递的变量组成的数组。是自动全局变量。 $GLOBALS['HTTP_RAW_POST_DATA'] :总是...

    PHP函数 -变量的作用域.ppt

    总体来说,变量根据定义的位置分为局部变量和全局变量。 一、局部变量 局部变量是在函数内部定义的变量,其作用域仅限于函数内部,离开该函数后再使用此变量是非法的。另外,函数定义中的普通形参由于只能在本函数...

    认识并使用PHP超级全局变量

    认识并使用PHP超级全局变量 超级全局变量也叫做预定义变量,是PHP系统中自带的变量,它可让你的程序设计更加的方便快捷。它的类型包括: $GLOBALS 包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键...

    PHP 超级全局变量相关总结

    超级全局变量在PHP 4.1.0之后被启用, 是PHP系统中自带的变量,在一个脚本的全部作用域中都可用。 PHP 超级全局变量 PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。...

    PHP语言中global和$GLOBALS[]的分析 之二

    } function test_globals() { $GLOBALS[‘var3’] =& $GLOBALS[‘var1’]; } $var1 = 5; $var2 = $var3 = 0; test_global(); print $var2 .”\n”; test_globals(); print $var3 .”\n”; ?&gt; 执行结果为: 0 5 ...

    php中global和$GLOBALS[]的分析之一

    1:Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。 复制代码 代码如下: &lt;?PHP $a=123; function aa() { Global $a; //如果不把$a定义为...

    PHP 预定义变量、魔术常量和魔术方法功能与用法小结

    本文总结了PHP 预定义变量、魔术常量和魔术方法。分享给大家供大家参考,具体如下: PHP 预定义了一些变量、常量、方法,使用起来很方便,例如直接使用 __DIR__ 获取当前文件所在的目录。 下面分别详细介绍一下 PHP...

Global site tag (gtag.js) - Google Analytics