PHP中的全局变量global和$GLOBALS的区别
1.global
Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。
但是在函数体内定义的global变量,函数体内可以使用,在函数体外定义的global变量不能在函数体内使用,具体看下面示例。
(1)在函数体内定义global变量,函数体内可以使用。
<?PHP
$a=123;
function aa()
{
Global $a; //把$a定义为global变量。
echo $a; //调用函数体外的变量
}
aa(); //输出结果为123,说明函数体内可以使用函数体外的变量;
?>
(2)在函数体外定义global变量,函数体内不可以使用。
<?PHP
$a=123;
Global $a; //在函数体外把$a定义为global变量。
function aa()
{
echo $a;
}
aa();//会报错,不能输出变量a。
?>
2.$GLOBALS
在 $GLOBALS 数组中,每一个变量为一个元素,键名对应变量名,值对应变量的内容。$GLOBALS 之所以在全局范围内存在,是因为 $GLOBALS 是一个超全局变量。注意$GLOBALS 的写法,比如变量$a1,写法为$GLOBALS['a1']。
示例:先使用global定义
<?PHP
$a1 = 1;
$a2 = 2;
function Sum()
{
global a1, a2;a2 = a1 + a2; //定义变a1和a2;
}
Sum();
echo a2; //输出结果为3
?>
使用$GLOBALS定义全局变量
<?PHP
$a1 = 1;
$a2 = 2;
function Sum()
{
$GLOBALS['a1'] = $GLOBALS['a1'] + $GLOBALS['a2']; //定义变量时每个都要定义
}
Sum();
echo a2; //输出结果为2
?>
例1:
function test()
{
global $a;//定义全局变量a
unset($a); //删除变量a
//print $a;//会报错,因为unset已经把$a删除了。
}
$a = 2; //定义一个变量a
test(); //调用test()方法
print $a; //输出a,输出的其实是$a = 2,所以结果为2.
例2:
function test_global()
{
global $var1, $var2;
$var2 =& $var1;
}
function test_globals()
{
$GLOBALS['var3'] =& $GLOBALS['var1'];
}
$var1 = 5;
$var2 = $var3 = 0; test_global();
print $var2; //输出结果为0 test_globals();
print $var3; //输结果为5
PHP中的全局变量global和$GLOBALS的区别的更多相关文章
- 关于PHP中的全局变量global和$GLOBALS的不同区分
1.global Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件. 但是在函数体内定义的global变量,函数体 ...
- 【PHP】- 全局变量global和$GLOBALS的区别
1.global global关键字的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件. 但是在函数体内定义的global变量, ...
- PHP中全局变量global和$GLOBALS[]的区别分析
$GLOBALS['var']是外部的全局变量本身,global $var是外部$var的同名引用或者指针 一.举例比较 例一: 复制代码 代码如下: <?php $var1 = 1; ...
- PHP中global与$GLOBALS的区别
单一个global是一个关键字,通常附加在变量前,用于将变量声明至全局作用域: $GLOBALS是预定义的超全局变量,把变量扔到里边的话一样可以带到全局去. $GLOBALS 是一个关联数组,每一个变 ...
- 全局变量:global与$GLOBALS的区别和使用
今天在写框架的时候想把SaeMySQL初始化之后作为全局变量使用.但是后来发现PHP中的全局变量和Java或者OC中的全局变量还是有较大区别的.下面记录一下php里面的global的使用相关注意事项. ...
- PHP中global与$GLOBALS['']的区别
+++ 探讨(一)+++++++++++++++++++++++++++++++++++++++ 很多人都认为global和$GLOBALS[]只是写法上面的差别,其实不然. 根据官方的解释是 $GL ...
- PHP的global和$GLOBALS的区别
global是关键字,通常添加在变量前,可以使变量的作用域为全局. $GLOBALS预定义的超全局变量,把变量扔到里面一样可以变成全局变量. $GLOBALS 是一个关联数组,每一个变量为一个元素,键 ...
- java中的全局变量与静态变量的区别与联系?有时候为什么专门定义静态变量。(标题党~~)
static代表“每个类一个”而不是“每个对象一个”.即静态变量是类的所有对象共有的. 1 static JFrame f; static MyDrawPanel ml; 整个应用程序如下: 定义在p ...
- php中global和$GLOBALS[]的分析之一
PHP 的全局变量和 C 语言有一点点不同,在 C 语言中,全局变量在函数中自动生效,除非被局部变量覆盖 这可能引起一些问题,有些人可能漫不经心的改变一个全局变量.PHP 中全局变量在函数 ...
随机推荐
- jquery双向列表选择器select版
这个是select版的,若想美化某些样式是不支持得,可以用div模拟版的,功能基本实现能用了,需要其他功能自己加上. div模拟版链接:http://www.cnblogs.com/tie123abc ...
- AngularJS API
AngularJS 全局 API 用于执行常见任务的 JavaScript 函数集合 angular.lowercase() 转换字符串为小写 angular.uppercase() 转换字符串为大写 ...
- Node.js 教程 06 - 函数
前言: 本篇介绍的是Node.js中的函数,相对于上一篇会简单一点,其实和我们Javascript中的function无异. 好了,废话不多说了,我们进入正题吧. Node.js函数: [示例1:创建 ...
- SQL SERVER 数据库各版本功能对比
以前写了篇SQL SERVER 2008数据库各版本功能对比,官网提供的那个功能确实很好很强大,后面发现那个链接失效了.今天又遇到要对比SQL Server 2014数据库版本功能需求,搜索找了好久才 ...
- kmeans算法并行化的mpi程序
用c语言写了kmeans算法的串行程序,再用mpi来写并行版的,貌似参照着串行版来写并行版,效果不是很赏心悦目~ 并行化思路: 使用主从模式.由一个节点充当主节点负责数据的划分与分配,其他节点完成本地 ...
- 【FLUENT案例】05:DDPM模型
本例利用FLUENT的DDPM模型对提升管进行模拟. 1 介绍 本案例演示在FLUENT中利用稠密离散相模型(Dense discrete phase model,DDPM)模拟2D提升管.DDPM模 ...
- 基于pcDuino-V2的无线视频智能小车 - UBUNTU系统上的gtk编程
详细的代码已经上传到git网站:https://github.com/qq2216691777/pcduino_smartcar
- [LeetCode] Word Break 拆分词句
Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separa ...
- [LeetCode] Remove Nth Node From End of List 移除链表倒数第N个节点
Given a linked list, remove the nth node from the end of list and return its head. For example, Give ...
- Anna-senpai帖子翻译与Mirai源代码使用
Anna-senpai这个人太好玩了,整件事就像没有黄段子的无聊世界那样. 无聊翻译了一下,顺便实验了效果. --------------------------------------------- ...