zoukankan      html  css  js  c++  java
  • 全局变量 global和$GLOBALS[]的区别

    global在函数内产生一个指向函数外部变量的别名变量(指向外部变量的引用),而不是真正的函数外部变量

    $GLOBALS[]确确实实调用是外部的变量,函数内外会始终保持一致!

    function test_global() {
        global $var1$var2//var1,var2保存的是外部同名变量的引用
        $var2 =& $var1;
    }
    function test_globals() {
        $GLOBALS['var3'] =& $GLOBALS['var1'];//操作的是实际的变量
    }

    $var1 = 5;
    $var2 = $var3 = 0;
    test_global();
    echo $var2;
    echo "\n";
    test_globals();
    echo $var3;
    //结果为 0 5

    例子2:

    function test_1() {
        global $var1//相当于在外边创建了一个同名变量,而这个变量是外边变量的引用
        $var1=2;
        unset($var1); //只是取消了到外边变量的引用
    }

    function test_2() {
        $GLOBALS['var1'] =3; //在外边创建$var1变量,此时操作的就是外部的变量
        //unset($GLOBALS['var1']); //删除外边变量

    }

    $var1 = 1;
    test_1();
    print $var1;
    echo "\n";
    test_2();
    print $var1;
    #这两种方式都可以改变 全局变量 $g 的值
    $g = 123;
    function test()
    {
    //     global $g; $g = 456;
    //     $GLOBALS['g'] = 456;    
    }
    test();
    echo $g; #456
  • 相关阅读:
    Hibernate实现CRUD的例子小结
    AspnetPager表格标题排序功能
    Microsoft企业库配置问题
    orm比较
    外语培训网求鉴定
    DIV随滚动条滚动而滚动
    图片切换效果展示
    转载C#委托之多播委托( 二)
    LINQ 图解
    不用ajax调用搞后台小技巧
  • 原文地址:https://www.cnblogs.com/siqi/p/2682224.html
Copyright © 2011-2022 走看看