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

摘要:
在函数体内定义global变量,函数体内可以使用。˃2.$GLOBALS在$GLOBALS数组中,每一个变量为一个元素,键名对应变量名,值对应变量的内容。$GLOBALS之所以在全局范围内存在,是因为$GLOBALS是一个超全局变量。示例:先使用global定义$a=1;$b=2;functionSum(){global$a,$b;//在里面声明为全局变量$b=$a+$b;}Sum();echo$b;使用$GLOBALS定义全局变量$a=1;$b=2;functionSum(){$GLOBALS["a"]=$GLOBALS["a"]+$GLOBALS["b"];//定义变量时每个都要定义}Sum();echo$b;//输出结果为2例1:functiontest(){global$a;//定义全局变量aunset($a);//删除变量a//print$a;//会报错,因为unset已经把$a删除了。

1.global

Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。

但是在函数体内定义的global变量,函数体内可以使用,在函数体外定义的global变量不能在函数体内使用,具体看下面示例。

(1)在函数体内定义global变量,函数体内可以使用。

<?php
$a = 1;
$b = 2;
functionSum()
{
    global $a, $b; //在里面声明为全局变量
    $b = $a + $b;
}
Sum();
echo $b;

(2)在函数体外定义global变量,函数体内不可以使用。

<?PHP 
$a=123; 
Global $a; //在函数体外把$a定义为global变量。 
functionaa(){
    echo $a;
}
aa();//会报错,不能输出变量a。
?>

2.$GLOBALS

在 $GLOBALS 数组中,每一个变量为一个元素,键名对应变量名,值对应变量的内容。$GLOBALS 之所以在全局范围内存在,是因为 $GLOBALS 是一个超全局变量。注意$GLOBALS 的写法,比如变量$a1,写法为$GLOBALS['a1']。

示例:先使用global定义

$a = 1;
$b = 2;
functionSum()
{
    global $a, $b; //在里面声明为全局变量
    $b = $a + $b;
}
Sum();
echo $b;

使用$GLOBALS定义全局变量

$a = 1;
$b = 2;
functionSum(){ 
    $GLOBALS["a"] = $GLOBALS["a"] + $GLOBALS["b"];//定义变量时每个都要定义
}
Sum(); 
echo $b; //输出结果为2

例1:

functiontest() 
{ 
    global $a;//定义全局变量a 
    unset($a); //删除变量a
    //print $a;//会报错,因为unset已经把$a删除了。 
} 
$a = 2; //定义一个变量a
test(); //调用test()方法
print $a; //输出a,输出的其实是$a = 2,所以结果为2.

例2:

functiontest_global() 
{ 
    global $var1, $var2; 
    $var2 =& $var1; 
} 
functiontest_globals() 
{ 
    $GLOBALS['var3'] =& $GLOBALS['var1']; 
} 
$var1 = 5; 
$var2 = $var3 = 0; 

test_global(); 
print $var2; //输出结果为0
test_globals(); 
print $var3; //输结果为05

免责声明:文章转载自《PHP中的全局变量global和$GLOBALS的区别》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇windows server 2012 DC 环境 重启后蓝屏 蓝屏代码: 0xc00002e2VS Code 终端设置为Git Bash下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

GO程序设计1——快速入门

1.GO语言开发环境搭建                                             1.1编译环境安装 点击链接http://code.google.com/p/go/downloads/list 选择一个版本,本人下载的是go1.0.3.windows-386.msi 双击安装,选择安装一个安装主目录:例如,C:\Go,不需...

一个接口多个实现类

一、以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候取出ApplicaitonContext。适用于根据数据库的配置取出对应定时任务的实现类 package com.wy.SpringBean; import org.slf4j.Logger; import org.slf4j.LoggerFactory;...

十个PHP开发者最容易犯的错误

文章引用链接:http://www.phpxs.com/post/5974/ PHP 语言让 WEB 端程序设计变得简单,这也是它能流行起来的原因。但也是因为它的简单,PHP 也慢慢发展成一个相对复杂的语言,层出不穷的框架,各种语言特性和版本差异都时常让搞的我们头大,不得不浪费大量时间去调试。这篇文章列出了十个最容易出错的地方,值得我们去注意。 易犯错误...

Python的变量

目标 变量的引用 可变和不可变类型 局部变量和全局变量 01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1.1 引用的概念 在 Python 中 变量 和 数据 是分开存储的 数据 保存在内存中的一个位置 变量 中保存着数据在内存中的地址 变量 中 记录数据...

深入理解PHP内核(十四)类的成员变量及方法

原文链接:http://www.orlion.ga/1237/ 类的成员变量在PHP中本质是一个变量,只是这些变量都归属于某个类,并且给这些变量是有访问控制的。 类的成员方法在PHP中本质是一个函数,只是这个函数以类的方法存在,他可能是一个类方法也可能是一个实例方法,并且在这些方法都加上了类的访问控制。类的成员方法是现实世界实体行为的抽象,可以用来实现类的...

[转]C++中的自动存储、静态存储和动态存储

根据用于分配内存的方法,C++中有3中管理数据内存的方式:自动存储、静态存储和动态存储(有时也叫做自由存储空间或堆)。在存在是间的长短方面,以这三种方式分配的数据对象各不相同。下面简要介绍这三种类型(注:C++11中新增了第四种类型——线程存储) 1.自动存储 在函数内部定义的常规变量使用自动存储空间,被称为自动变量(automatic variable)...