zoukankan      html  css  js  c++  java
  • php 在函数内引用全局变量 讲解引用

    <?php
    $var1 = "Example variable";
    $var2 = "";
    
    function global_references($use_globals)
    {
        global $var1, $var2;
        if (!$use_globals) {
            $var2 =& $var1; // visible only inside the function
        } else {
            $GLOBALS["var2"] =& $var1; // visible also in global context
        }
    }
    
    global_references(false);
    echo "var2 is set to '$var2'
    "; // var2 is set to ''
    global_references(true);
    echo "var2 is set to '$var2'
    "; // var2 is set to 'Example variable'
    ?>

    当用 global $var 声明一个变量时实际上建立了一个到全局变量的引用。也就是说和这样做是相同的:

     $var =& $GLOBALS["var"];

    这意味着,例如,unset $var 不会 unset 全局变量。

    如果在一个函数内部给一个声明为 global 的变量赋于一个引用,该引用只在函数内部可见。可以通过使用 $GLOBALS 数组避免这一点。

    Example  在函数内引用全局变量

    <?php
    $var1 = "Example variable";
    $var2 = "";
    
    function global_references($use_globals)
    {
        global $var1, $var2;
        if (!$use_globals) {
            $var2 =& $var1; // visible only inside the function
        } else {
            $GLOBALS["var2"] =& $var1; // visible also in global context
        }
    }
    
    global_references(false);
    echo "var2 is set to '$var2'
    "; // var2 is set to ''
    global_references(true);
    echo "var2 is set to '$var2'
    "; // var2 is set to 'Example variable'
    ?>

    global $var; 当成是 $var =& $GLOBALS['var']; 的简写。从而将其它引用赋给 $var 只改变了本地变量的引用。

     http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/09/10/2173092.html

  • 相关阅读:
    php 工厂模式实例
    nginx多虚拟主机配置
    PHP提高编程效率的方法
    PHP 多态
    锁机制之PHP文件锁
    深入认识javascript中的eval函数(转载)
    PHP&MYSQL 常用的一些性能检测
    寒假作业1:问答题
    软件测试基础知识总结
    七种测试驱动模式
  • 原文地址:https://www.cnblogs.com/hubing/p/3171543.html
Copyright © 2011-2022 走看看