php global与$GLOBALS详解

global的用法

global定义全局变量,不是应用于整个网站,仅仅是应用于当前页面。
函数体外用global关键字定义变量,函数体内无法使用到该变量。函数体内使用global关键字定义变量,则可实现函数内可以不需要传参就可以访问到该变量,函数体内的变量等同于函数体外变量的同名引用例如:

//global 关键字函数外定义变量 global只能定义变量,不能同时进行变量初始化
// global $a = 10; //错误写法
global $a;
$a = 10;
function test(){
    echo $a; //test函数内变量$a未定义
}

//正确写法
$a = 10;
function test(){
    global $a; //这里的$a是外部$a的同名引用 可以将函数体内的$a理解成$b = $a
    echo $a; //输出10
    $a = $a +1;
    echo $a; //输出11
    unset($a); //这里unset 只是unset掉函数内的同名引用 外部的$a变量并没有被unset
}

test();
echo $a; //输出11

$GLOBALS超全局变量

GLOBALS超全局变量是系统定义的变量,在任何地方都可以使用。包含GET,POST,COOKIE数组的内容
函数体内使用GLOBALS定义变量相当于函数体外的变量本身
例如:

$b = 2;
function testB(){
    $GLOBALS['b'] = 10; // $GLOBALS['b'] b是变量在函数外面的变量名  使用$GLOBALS可以直接进行赋值 相当于$b本身
//    unset($GLOBALS['b']);//unset $GLOBALS['b']相当于unset($b) unset 后变量不存在
}

testB();
echo $b; //输出10 unset后变量找不到会报错
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值