`

引用和global

    博客分类:
  • PHP
 
阅读更多

 

<?php
$var1 = 1;
$var2 = 2;
function test(){
global $var1,$var2; 
$var1 = 3;
}
test();
echo $var1;  //3
echo $var2;  //2

 

 

 

<?php
$var1 = 1;
$var2 = 2;

function test(){
    global $var1, $var2;
    $var1 = &$var2;
}
test();
echo $var1;  1
echo $var2;  2

 

 

 

<?php
$var1 = 1;    
$var2 = 2;    
function test_global()    
{    
    global $var1,$var2;    
    $var1=&$var2;    
    $var1=7;    
}
test_global();    
echo $var1;    //1
echo $var2;    //7

 

 

结论:

global $var1; 实际是对全局变量 $GLOBALS['var1'] 的引用
$var1 =& $GLOBALS['var1']; 这在php内部实现

$var1 =& $var2;
是对 $var2 的引用

$var1 =& $var2;后,既然 $var1 已经不是 $GLOBALS['var1'] 的引用了
那么对 $var1 的任何改变,当然就不会影响到 $GLOBALS['var1'] 

 

 

分享到:
评论

相关推荐

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

    然而,当我们需要在函数内部使用全局变量时,有两种方式可以实现:`global`关键字和`$GLOBALS`数组。虽然两者都能访问全局变量,但它们在用法和效果上有所不同。 首先,`global`关键字是用来在函数内部引用全局变量...

    Global Platform card specification v2.3.1

    文档参考部分说明了规范文件的正式引用名为“GPC_SPE_034”,并且注有版权信息,即这份文档的版权归Global Platform公司所有,从2006年至2018年的文档发布期间的所有权利均受到保护。文档还鼓励读者提交反馈,并报告...

    gnu global 6.6.8 win32

    4. **跨文件跳转**:通过引用和被引用的关系,可以在不同的源文件之间自由切换。 5. **文档集成**:支持Doxygen、Javadoc等文档格式,可以直接在源代码中查看相关文档注释。 6. **自定义配置**:用户可以根据个人...

    asp.net global详解

    ASP.NET的Global.asax文件是Web应用程序的核心组件之一,它提供了全局范围内的代码执行环境,用于处理应用程序级和会话级的事件。这个文件通常位于应用程序的根目录下,是可选的,但如果存在,它将定义...

    global platform specification v2.1.1

    为了确保文档的一致性和可读性,《Global Platform Card Specification Version 2.1.1》中定义了一系列专业术语,如: - **Runtime Environment (运行时环境)**:智能卡操作系统提供的一种执行环境,允许智能卡应用...

    提升效率之循环全局变量Global.pdf

    为了比较这三种方式的运行效率,`TestSpeed`类方法执行了10000次循环,分别测试了使用裸全局变量、引用全局变量和赋值后再使用全局变量的方法。通过计算每次循环的时间差,我们可以看到哪种方式更为高效。通常,`$ZR...

    提升效率之循环全局变量Global (1).pdf

    从测试结果来看,通常情况下,使用`$ZR`指令引用全局变量的方法(ZR)会比直接访问裸全局变量(Nake Global)和每次循环都重新赋值全局变量(Not ZR)更快。这是因为`$ZR`在循环开始时就完成了全局变量的加载,减少...

    GlobalPlatform Card Specification v.2.2.1.pdf

    9. 文档参考:文档中还包含了对规范文件的参考编号(GPC_SPE_0342006-2011),这对引用和查找特定版本的规范非常重要。 10. 版本修订历史:文档对之前版本的修订历史进行了记录,例如从开放平台卡规范v2.0到v2.0.1...

    global_address.zip

    `global_address.zip` 文件包含了 SQL 表结构和实际的数据,以及预处理后的 JSON 结果,这些内容为实现国家、省、市三级联动的下拉菜单提供了数据支持。这种联动效果常见于在线表单、地图应用等,用户可以逐级选择...

    GlobalResource(c#)多语言示例

    在XAML中,对于WPF或UWP应用,可以使用`x:Uid`属性和数据绑定来引用资源: ```xml ``` 在代码-behind中设置绑定: ```csharp TextBlock greetingText = FindName("GreetingText") as TextBlock; greetingText....

    实例讲解Python中global语句下全局变量的值的修改

    在Python中,当在函数内部修改一个字典或列表时,实际上是在修改这些容器对象的引用,而不是创建新的局部变量。因此,即使没有显式地使用`global`关键字,也可以直接修改这些容器类型全局变量的内容。但需要注意的是...

    前端开源库-angular-global-pubsub

    1. **解耦组件**:通过全局的发布/订阅机制,组件不再需要直接引用彼此,降低了组件间的耦合度,提高了代码的可维护性。 2. **实时通信**:Pubsub模式支持实时更新,一旦数据发布,所有订阅者都会立即接收到新的...

    gnu global 最新版

    - Global 是一个开源的命令行工具,主要用于跟踪源代码中的函数、变量、宏等定义和引用。 - 它生成一个索引数据库,用户可以通过简单的命令来查找和跳转到源代码的特定位置。 - Global 支持多种编程语言,包括但...

    php_的global问题

    2. **`global`不改变变量的作用域**:`global`的作用是在函数内部创建对全局变量的引用,而非改变变量本身的全局性。这意味着在函数外部定义的变量,在函数内部通过`global`引用后,仍然保持其原有的作用域属性。 #...

    Natural image stitching with the global similarity prior.pdf

    首先感谢作者陈育圣和莊永裕为我们展现出如此优秀的作品《基於全局相似转换的猜测之自然影像拼接》,资源为该论文的电子文档(核心部分做了翻译,可能存在瑕疵,敬请谅解),文档仅...,请用到该文章的做好引用声明...

    Global_masking_threshold.rar_threshold_数字水印_水印

    标题中的"Global_masking_threshold.rar_threshold_数字水印_水印"揭示了这个压缩包包含的是关于数字水印技术的一个具体应用,特别是涉及到全局掩蔽阈值(Global Masking Threshold)的算法。数字水印是一种在数字...

    Python语言基础:global 和 nonlocal关键字.pptx

    在Python编程语言中,理解和使用`global`和`nonlocal`关键字对于编写涉及多作用域的代码至关重要。这两个关键字允许我们在不同的作用域内操作变量,从而实现特定的逻辑。 1. **global** 关键字 `global`关键字用于...

    Laravel开发-global-routing

    "Laravel开发-global-routing" 主题深入探讨了如何在Laravel 5中设置和管理全局路由,以便高效地映射URL到特定的控制器和方法。 一、路由基础 在Laravel中,路由负责处理所有的HTTP请求,并将其导向适当的处理程序...

    前端开源库-global-paths

    `global-paths`是一个针对Node.js和JavaScript环境的开源库,它为开发者提供了便捷的方式来获取与用户平台和环境相关的唯一“全局”目录数组。这个库使得开发者可以方便地处理跨平台的全局路径问题,无需关心不同...

    删除global.asa文件方法

    ### 删除global.asa文件的方法 在探讨如何删除`global.asa`文件之前,我们首先需要了解这个文件的基本概念以及它在Web开发中...无论是简单的文件删除还是复杂的代码重构,关键是要确保项目的稳定性和安全性不受影响。

Global site tag (gtag.js) - Google Analytics