`
天梯梦
  • 浏览: 13732525 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

PHP: 关键字global 和 超全局变量$GLOBALS的用法、解释、区别

阅读更多

$GLOBALS 是一个关联数组,每一个变量为一个元素,键名对应变量名,值对应变量的内容。$GLOBALS 之所以在全局范围内存在,是因为 $GLOBALS 是一个超全局变量。

php语法中,很多人都认为global和$GLOBALS[]只是写法上面的差别,其实不然
根据官方的解释是


1. $GLOBALS['var']是外部的全局变量本身
2. global $var是外部$var的同名引用或者指针。

 

举例说明一下:

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

    function test(){
        $GLOBALS['var2′] = &$GLOBALS['var1′];
    }
    test();
    echo $var2;
?>

 

正常打印结果为1

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

    function test(){
        global $var1,$var2;
        $var2 = &$var1;
    }
    
    test();
    echo $var2;
?>

 

意外打印结果为2

 

为什么会打印结果为2呢?其实就是因为$var1的引用指向了$var2的引用地址。导致实质的值没有改变。
我们再来看一个例子吧。

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

 


点击阅读全文

更多参考:

变量范围

PHP: extract 将数组array的key变为变量 ( extract函数的定义和用法 )

HP7革新与性能优化

JQuery: 使用Ajax赋值给全局变量失败异常的解决方法,ajaxSetup, jquery ajax global

 

 

本文转自: PHP: 关键字global 和 超全局变量$GLOBALS的用法、解释、区别
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
分享到:
评论

相关推荐

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

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

    PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】 <font color=red>原创</font>

    另一种访问全局变量的方法是使用内置数组$GLOBAL,它包含了所有全局变量的引用,通过键名(即变量名)可以访问到对应的全局变量。 #### 示例1:$GLOBALS数组使用 ```php &lt;?php $a = 1; $b = 2; test_globals(); ...

    PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析

    在PHP中,超级全局变量是一类特殊的变量,它们在整个脚本的任何作用域内都可访问,无需在函数或类的方法中使用global关键字来声明。本篇文章将深入探讨三个重要的PHP超级全局变量:$GLOBALS,$_SERVER和$_REQUEST。 ...

    PHP中全局变量global和$GLOBALS[]的区别分析

    标题中提到的“global和$GLOBALS[]的区别分析”指出了两种不同的方法来处理全局变量,这两种方式虽然都可以达到访问全局变量的目的,但它们在机制和用法上有着本质的不同。 在给出的描述中,我们可以看到一个基本的...

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

    `$GLOBALS`是一个超全局数组,它允许你在函数内外直接访问全局变量,无需使用`global`关键字。例如: ```php $w3sky = 1; $w3sky2 = 2; function Sum() { $GLOBALS['w3sky2'] = $GLOBALS['w3sky'] + $GLOBALS...

    php多次include后导致全局变量global失效的解决方法

    尤其是在包含多个文件时,多次include可能导致全局变量在一些场景下失效,特别是在使用`global`关键字时。本文针对这一问题提供了详细的解释和解决方案。 首先,要了解`include`语句的作用。`include`语句用于包含...

    PHP超级全局变量详解.md

    这意味着你可以在函数或者方法内部使用`$GLOBALS`来读取或者修改这些变量的值,而无需明确地使用`global`关键字声明这些变量。 **1. 在函数内部访问全局变量** 在函数内部通过`$GLOBALS`访问全局变量是一种常见的...

    php_的global问题

    本文将深入解析`global`的使用方法、常见误区以及如何利用全局数组`$GLOBALS`作为替代方案。 #### 一、`global`关键字的基本使用 在PHP中,变量默认情况下只能在其被定义的作用域内访问。一旦变量在函数外部定义,...

    PHP变量作用域(全局变量&局部变量)&global&static关键字用法实例分析

    但是,如果你想在函数内部使用全局变量,你需要使用`global`关键字来引入。例如: ```php $x = 5; function myFunction() { global $x; echo $x; // 输出5 } ``` 在这个例子中,`$x`是一个全局变量,我们使用`...

    PHP全局变量与超级全局变量区别分析

    全局变量默认的作用范围仅限于文件内,除非使用global关键字在函数内声明。而超级全局变量的作用范围覆盖了整个PHP应用,它们不需要任何特殊的声明即可在任何地方被访问。 值得注意的是,超级全局变量不是保存在`$_...

    PHP利用超级全局变量$_POST来接收表单数据的实例

    - `$GLOBALS`:访问全局变量的全局数组,与`global`关键字不同,后者用于在函数内部访问全局变量。 理解这些超级全局变量是PHP开发的基础,它们在处理Web表单、传递数据以及与服务器交互时扮演着关键角色。通过熟练...

    php中全局变量global的使用演示代码

    尽管`global`关键字和`$GLOBALS`都可以用来访问全局变量,但它们之间有区别: - `global`关键字直接引用全局变量,而`$GLOBALS`则是一个数组,通过键值访问。 - 使用`global`可以在函数内部直接操作全局变量,而`$...

    PHP语言中global和$GLOBALS[]的分析 之二

    在PHP编程语言中,`global`关键字和`$GLOBALS`数组是两个与全局变量相关的概念,它们虽然都与全局变量的使用有关,但在具体操作上有所区别。在本篇文章中,我们将深入分析这两个概念,通过实例来理解它们的工作原理...

    php代码-PHP global 关键字

    你可以通过`$GLOBALS['variable_name']`来访问全局变量,但这并不推荐,因为它与`global`关键字一样,增加了代码的复杂性和潜在错误。 ```php &lt;?php $my_global = "Using $GLOBALS array"; function show_global()...

    PHP中函数内引用全局变量的方法

    本文将详细解释如何在PHP函数中引用全局变量,以及`global`关键字和`$GLOBALS`数组的作用。 首先,让我们回顾一下给定的代码示例: ```php &lt;?php $var1 = "#####"; $var2 = "&&&&&"; function global_references...

    认识并使用PHP超级全局变量

    在PHP编程语言中,超级全局变量是一类特殊变量,它们在任何函数或方法内部都可直接访问,无需使用`global`关键字进行声明。这些变量在脚本的全局作用域中始终可用,使得开发者能轻松地处理来自不同源的数据,如HTTP...

    PHP 超级全局变量相关总结

    在PHP编程语言中,超级全局变量是一类特殊的变量,它们在任何作用域内都是可用的,无需通过`global`关键字来引用。自PHP 4.1.0版本开始,引入了若干预定义的超级全局变量,这些变量对于处理Web应用程序中的数据流、...

    PHP超全局变量实现原理及代码解析

    理解如何正确使用超全局变量对于开发动态网站和Web应用程序至关重要。需要注意的是,虽然超全局变量提供了便利,但也应该谨慎使用,以避免潜在的安全风险,特别是在处理用户输入数据时。合理地使用超全局变量可以...

    腾讯网PHP开发基础培训

    - 全局变量在函数内部使用需通过`global`关键字引用,如`global $val`,或使用`$GLOBALS`数组,如`$GLOBALS['val']`。 - 静态变量允许函数在每次调用时保持其内部状态,使用`static`关键字定义,如`static $val = ...

Global site tag (gtag.js) - Google Analytics