PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > 开发编程 > PHP教程 > 正文

    $GLOBALS超全局变量分析

    作者:admin来源:phpernote浏览:时间:2020-09-30 00:07:50我要评论
    导读:$GLOBALS定义:引用全局作用域中可用的全部变量(一个包含了全部变量的全局组合数组。变量的名字就是数组的键),与所有其他超全局变量不同
    $GLOBALS定义:引用全局作用域中可用的全部变量(一个包含了全部变量的全局组合数组。变量的名字就是数组的键),与所有其他超全局变量不同,$GLOBALS在PHP代码中任何地方总是可用的,自己可以通过打印$GLOBALS这个变量的结果就知道了。
    php中有一个不为很多人所用的超全局变量$GLOBALS。合理使用这个变量能使工作变得更加有效率,本篇文章主要分析一下这个超全局变量的用法以及$GLOBALS和global的区别。
    <?php
    $var1='www.bcty365.com';
    $var2='www.google.cn';
    test();
    function test(){
        $var1='taobao';
        echo $var1,'<br />';
    global $var1;
    echo $var1,'<br />';
        echo $GLOBALS['var2'];
    }
    ?>

    结果将打印为:
    taobao
    www.bcty365.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']。调用外部变量的一个别名而已。

    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-10-50-1.html
    相关热词搜索: $GLOBALS 全局变量