关于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
?>
eg:global
function test()
{
global $a;//定义全局变量a
unset($a); //删除变量a
//print $a;//会报错,因为unset已经把$a删除了。
}
$a = 2; //定义一个变量a
test(); //调用test()方法
print $a; //输出a,输出的其实是$a = 2,所以结果为2.
eg:$GLOBALS
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中超全局变量$GLOBALS和global的区别
一.超全局变量$GLOBALS PHP超全局变量有很多,如下的都属于超全局变量(Superglobal): $GLOBALS,$_SERVER,$_GET,$_POST,$_FILES,$_COOKI ...
- php中全局变量global和超全局变量$GLOBALS
php中全局变量global和超全局变量$GLOBALS 1.global Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require ...
- PHP中全局变量的使用global和$GLOBALS[]
From: http://blog.csdn.net/happyqyt/article/details/7219889 用PHP开发项目,不可避免的会使用到全局变量,比如一些网站的配置信息,全站通用, ...
- 全局变量:global与$GLOBALS的区别和使用
今天在写框架的时候想把SaeMySQL初始化之后作为全局变量使用.但是后来发现PHP中的全局变量和Java或者OC中的全局变量还是有较大区别的.下面记录一下php里面的global的使用相关注意事项. ...
- PHP中global与$GLOBALS['']的区别
+++ 探讨(一)+++++++++++++++++++++++++++++++++++++++ 很多人都认为global和$GLOBALS[]只是写法上面的差别,其实不然. 根据官方的解释是 $GL ...
- CodeIgniter 定义“全局变量-global variable”,可以在所有controller,model和view中使用
本文抄自http://www.cnblogs.com/webu/archive/2012/11/20/2779999.html 第一次正儿八经用CodeIgniter框架做项目,结果不会定义全局变量, ...
随机推荐
- 在centos7下用http搭建配置svn服务
应用场景:SVN是Subversion的简称,是一个开放源代码的版本控制系统. 安装环境:centos7 //已关闭 Selinux和 Firewall 配置步骤: 1. 安装HTTP和SVN相关软 ...
- 对于Spring中注入对象失败的问题
1.今天进行了一段代码,经过检查发现config配置文件没问题,注入注解也编写正确,但是RedisTemplate就是会抛出空指针异常. 进过一系列检查发现,其在用户使用该类的时候采用的是new方式创 ...
- C# 中Web.config文件的读取与写入
asp.net2.0新添加了对web.config直接操作的功能.开发的时候有可能用到在web.config里设置配置文件,其实是可以通过程序来设置这些配置节的. asp.net2.0需要添加引用: ...
- Django 路由报错友好提示
这个方法要在设置路由文件内使用也就是urls.py内. """mysite URL Configuration The `urlpatterns` list routes ...
- Django 路由
创建好项目后在项目文件下的urls.py为设置路由 Django 有两种路由方式一种的精确路由 另一个为模糊路由 """mysite URL Configuration ...
- 关于react-native在MacBookPro环境下的安装
都说欲善其事,必先利其器. 使用macbook写react-native 环境真的非常容易配置 先看效果 然后我们看安装需要的东西 brew install node brew install wat ...
- Unable to load script from assets 'index.android.bundle'.make sure you bundle is packaged correctly
解决此问题 以下方法每次都需要执行命令2才能更新 1.创建assets目录 mkdir android/app/src/main/assets 2.执行命令 react-native bundle - ...
- 表格中的checkbox复选框 全选非全选 公共方法 及提交选中结果
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- C++学习之回调函数
回调函数: 通过函数指针进行调用的函数. 回调函数不是由实现方进行调用,而是将函数指针传入,在特殊条件或者状态下进行触发调用. 譬如: 在自定义按钮控件时,当点击按钮,触发点击事件,调用指定函数. 注 ...
- python自动化开发-[第二十四天]-高性能相关与初识scrapy
今日内容概要 1.高性能相关 2.scrapy初识 上节回顾: 1. Http协议 Http协议:GET / http1.1/r/n...../r/r/r/na=1 TCP协议:sendall(&qu ...