PHP里global与$GLOBALS['']的区别

根据官方的解释是

  • $GLOBALS[‘var‘] 是外部的全局变量$var本身。
  • global $var 是外部$var的同名引用,即这两个变量指向同一个值。

     1 <?php
     2    $var1 = 1;
     3    $var2 = 2;
     4    function test() {
     5      $GLOBALS[‘var2‘] = &$GLOBALS[‘var1‘];
     6    }
     7
     8    test();
     9    echo $var2;
    10 ?>

    打印结果为1

    <?php
    $var1 = 1;
    $var2 = 2;
    function test(){
        global $var1, $var2;
        $var2 = &$var1;
        echo $var2;
        $var2 = ‘snsgou.com‘;
    }
    
    test(); // 输出 1
    echo $var2; // 输出 2
    echo $var1; // 输出 snsgou.com
    ?>
  • test()函数中的$var1,$va2都是局部变量,只不过是加了global关键字后,分别引用指向全局变量$var1,$va2;
  • $var2 = &$var1;是将global var2里存入global var1的地址,而不影响全局变量var1里存的地址。当 $var2 = &$var1; 时,局部变量$var2不再指向全局变量$val2,而重新指向全局变量$var1,换句话来说,局部变量$var2的改变,不会再影响到全局变量$val2,而会影响到重新指向的全局变量$val1

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

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

    <?php
    $var1 = 1;
    
    function test(){
        global $var1;
        unset($var1);
    }
    
    test();
    echo $var1;
    ?>

    打印了1。因为只是把引用变量global var1给删除了,不影响全局变量var1。

PHP里global与$GLOBALS['']的区别

时间: 2024-10-07 05:06:28

PHP里global与$GLOBALS['']的区别的相关文章

PHP中global与$GLOBALS[&#39;&#39;]的区别

+++ 探讨(一)+++++++++++++++++++++++++++++++++++++++ 很多人都认为global和$GLOBALS[]只是写法上面的差别,其实不然. 根据官方的解释是 $GLOBALS['var'] 是外部的全局变量$var本身. global $var 是外部$var的同名引用或者指针.(错误:是个别名引用而已,非指针!!!) 举例说明一下: <?php $var1 = 1; $var2 = 2; function test() { $GLOBALS['var2']

PHP中global与$GLOBALS的区别

单一个global是一个关键字,通常附加在变量前,用于将变量声明至全局作用域: $GLOBALS是预定义的超全局变量,把变量扔到里边的话一样可以带到全局去. $GLOBALS 是一个关联数组,每一个变量为一个元素,键名对应变量名,值对应变量的内容.$GLOBALS 之所以在全局范围内存在,是因为 $GLOBALS 是一个超全局变量. 细节:PHP释放全局变量注意事项 global $var : 指函数外部同名变量的引用 $GLOBALS['var'] : 指函数外部变量本身 global $va

全局变量:global与$GLOBALS的区别和使用

今天在写框架的时候想把SaeMySQL初始化之后作为全局变量使用.但是后来发现PHP中的全局变量和Java或者OC中的全局变量还是有较大区别的.下面记录一下php里面的global的使用相关注意事项.1.有些场合需要全局变量的出现,如下例子: <?php $name="why";//定义变量name,并初始化 function echoName() { //试图引用函数外面的变量 echo "myname is ".$name."<br>

PHP中的全局变量global和$GLOBALS的区别

1.global Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件. 但是在函数体内定义的global变量,函数体内可以使用,在函数体外定义的global变量不能在函数体内使用,具体看下面示例. (1)在函数体内定义global变量,函数体内可以使用. <?PHP $a=123; function aa() { Global $a; //把$a定义为global变量. echo $a; //调用函数体外的变量

PHP的global和$GLOBALS的区别

global是关键字,通常添加在变量前,可以使变量的作用域为全局. $GLOBALS预定义的超全局变量,把变量扔到里面一样可以变成全局变量. $GLOBALS 是一个关联数组,每一个变量为一个元素,键名对应变量名,值对应变量的内容.$GLOBALS 之所以在全局范围内存在,是因为 $GLOBALS 是一个超全局变量. global $var : 指函数外部同名变量的引用 $GLOBALS['var'] : 指函数外部变量本身 $a = 100; function one(){ global $a

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

PHP 的全局变量和 C 语言有一点点不同,在 C 语言中,全局变量在函数中自动生效,除非被局部变量覆盖 这可能引起一些问题,有些人可能漫不经心的改变一个全局变量.PHP 中全局变量在函数中使用时必须申明为全局(注意,Global这个关键字在函数中定义才有用). 1:Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件. 复制代码代码如下: <?PHP $a=123; function aa() { Global

关于form表单中method里get和post的区别

在html里form可谓不得不用的一条代码,而form里的method选项里只有get和post两种. 因为我们大多数情况下只有post,所以get和post的区别很容易被遗忘. 简单区别来讲: get提交:提交的数据会在ul上进行提交,明文不加密,不安全,提交的数据有限. Post提交:以form表单封装的方式提交,适合提交大量的数据,相对安全. 虽然我们很少用get,但是我们一定常见到这种方式,只是我们很少注意到罢了. 比如,百度的搜索内容就是用的get方式,我们可以在url上看到我们都提交

关于global和$GLOBALS[]的一些实践---我有小尾巴

在我闲的蛋疼的时候,想起了全局变量,于是就果断百度谷歌,搜索结果还是蛮理想的,结果点击一看才知道,我擦,有么有这么坑爹,全他妈一样,连错别字都是一样滴,这时我就想吐槽,不由想到吐槽神人熬尼玛.俺一张嘴...妈蛋,只有口水没有草灭办法,就默默的自己测试一把!------这是我的小尾巴,你们看到了吗?啥?没有小尾巴...艾玛,我的小尾巴呢!代码示例:测试1: 1 <?php 2 function test(){ 3 global $var; 4 $var ++; 5 } 6 $var = 1; 7

腾讯云服务器与服里云服务器的差异区别比较

腾讯云服务器与服里云服务器的差异区别比较,腾讯云与阿里云哪个好? 经常有站长问我,腾讯云服务器与阿里云服务器哪个好,腾讯云与阿里云之间有什么区别? 不管是个人站长,还是企业公司,在初次选择服务器的时候,都很迷茫,不知道具体选择哪种服务器.因为有的人说阿里云服务器好,有的人说腾讯云服务器好.导致很多人初次购买服务器,无从下手,不知如何选择. 阿里云服务器的优点:依靠最大的电商阿里巴巴集团,具备雄厚的技术实力,使用阿里云服务器的用户比较多,也是服务器起家比较早的公司. 阿里云服务器的缺点:阿里云后台