PHP 超全局变量之$GLOBALS
$GLOBALS——引用全局作用域中可用的全部变量。
$GLOBALS一个包含了全部变量的全局组合数组。变量的名字就是数组的键。(即所有出现过的全局变量,都可通过$GLOBALS获取到)
注释:
“Superglobal”也称为自动化的全局变量。这就表示其在脚本的所有作用域中都是可用的,不需要在函数或方法中用global $variable;来访问它。
与所有其他超全局变量不同,$GLOBALS在PHP中总是可用的。
在PHP中,定义在函数体外的全局变量,函数内部是不能直接获取的,所以需要global声明或者$GLOBALS[]来获取。
$GLOBALS 和 global 的区别:
- $GLOBALS['variable'] 是外部的全局变量$variable本身。
- global $variable 是外部$variable的同名引用或者指针。把 global $variable; 当成是 $variable = & $GLOBALS['variable']; 的简写。也就是在函数产生一个指向函数外部变量的别名变量,而不是真正的函数外部变量。【PHP变量函数里指出:在 Zend 引擎 1 代,它驱动了 PHP4,对于变量的 static 和 global 定义是以引用的方式实现的。例如,在一个函数域内部用 global 语句导入的一个真正的全局变量实际上是建立了一个到全局变量的引用。】
下面一个简单的例子说明:
$a = 1;
$b = 2;
function Test1(){
echo $a; //输出 :Notice: Undefined variable: a
global $a;
echo $a; //输出: 1
unset($a);
}
Test1();
echo $a; // 输出:1
function Test2(){
echo $GLOBALS['a']; //输出: 1
unset($GLOBALS['a']);
}
Test2();
echo $a;//输出:Notice: Undefined variable: a
$GLOBALS 和 global 的相同点:
- 可以在函数内部使用函数外声明的变量;
- 在函数体外声明全局变量没有意义,在函数内部也无法使用。
例子:
global $a;
$a = 1;
function Test3(){
echo $a; //输出:Notice: Undefined variable: a
}
Test3(); $GLOBALS['b'] = 2;
function Test4(){
echo $b; //输出:Notice: Undefined variable: b
}
Test4();
PHP 超全局变量之$GLOBALS的更多相关文章
- php预定义变量,超全局变量,魔术方法,特殊函数变量使用
<?php /* * 本代码全部为测试函数代码,部分注释和写实例 * * 修改php.ini variables_order=”EGPCS” * 请注意$_REQUEST在优先级传参的时候会造成 ...
- php基础(三)超全局变量
超全局变量 在 PHP 4.1.0 中引入,是在全部作用域中始终可用的内置变量. PHP 全局变量 - 超全局变量 PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可 ...
- PHP 5 全局变量 - 超全局变量
PHP 全局变量 - 超全局变量 PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用.在函数或方法中无需执行 global $variable; 就可以访问它们. ...
- php 超全局变量(整理)
来源:https://www.cnblogs.com/wsybky/p/8745286.html 一.$GLOBALS 在GLOBALS数组中,每一个变量为一个元素,键名对于变量名,值对于变量的内. ...
- PHP中超全局变量$GLOBALS和global的区别
一.超全局变量$GLOBALS PHP超全局变量有很多,如下的都属于超全局变量(Superglobal): $GLOBALS,$_SERVER,$_GET,$_POST,$_FILES,$_COOKI ...
- php中全局变量global和超全局变量$GLOBALS
php中全局变量global和超全局变量$GLOBALS 1.global Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require ...
- PHP变量入门教程(2)超全局变量,总共9个
PHP 超全局变量 $GLOBALS 包含一个引用指向每个当前脚本的全局范围内有效的变量.该数组的键标为全局变量的 名称.从 PHP 3 开始存在 $GLOBALS 数组. $_SERVER 变量由 ...
- 【二十三】php之预定义超全局变量
php提供了九种预定义超全局变量: $_GET.$_POST.$_REQUEST.$_SERVER.$_ENV.$_FILE. $_COOKIE.$_SESSION. $GLOBALS 1.$_GET ...
- PHP学习笔记--Php预定义超全局变量$_GET
Php中的许多预定义变量都是超全局的,无需使用global声明 超全局变量 不需要声明就可以直接使用 提供超全局变量(数组)为了让程序员更快捷的编程 $GLOBALS— 引用全局作用域中可用的全部变量 ...
随机推荐
- ubuntu python 安装使用虚拟环境 virtualenv
1,虚拟环境是干啥用的? 我在电脑上装了cuda,显卡驱动,cudnn等一堆配套文件,然后又依赖于cuda和驱动安装了tensorflow2.0的gpu测试版,不知为何,我每次跑完tf2程序电脑都会卡 ...
- MDK Debug (printf) Viewer打印数据
1.Target Options -> Debug -> Settings(JLink) -> Debug里ort选择SW模式 2.在Target Options -> Deb ...
- IntelliJ IDEA实用插件推荐
IntelliJ在业界被公认为优秀的Java开发平台之一,在智能代码助手.代码自动提示.重构.J2EE支持.代码审查. 创新的GUI设计等方面表现突出,并支持基于Android平台的程序开发.通过插件 ...
- MySql 存储大量长字节 Text报错处理办法
今天线上版本的错误: Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Row size too large ...
- normalization flow
from Eric Jang Normalizing flows transform simple densities (like Gaussians) into rich complex distr ...
- AntDesign(React)学习-3 React基础
前面项目已经建起来了,但是没有React基础怎么办,从头学习,这个项目使用的是基于React16.X版本的几种技术集成,那么我们就从网上找一些相关的资料进行研究,我的习惯是用到哪学到哪. 一.先看一些 ...
- Django学习笔记4
Referto https://docs.djangoproject.com/zh-hans/2.2/intro/tutorial04/ Since we have the abstract conc ...
- 【Unity|C#】基础篇(8)——委托(Delegate)/ 事件(Event)
[学习资料] <C#图解教程>(第13~14章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.bai ...
- 颜色color转为rgb格式
function convertHexToRGB(color) { if (color.length === 4) { let extendedColor = &q ...
- C语言--“.”与“->”有什么区别?
这虽然是个小问题,但有时候很容易让人迷惑,因为有的时候用混淆了,程序编译不通过. 下面说说我对它们的理解. 一般情况下用“.”,只需要声明一个结构体.格式是,结构体类型名+结构体名.然后用结构 ...