1.全部变量
全局变量也称为外部变量,是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的结尾。和其他编程语言不同,全局变量不是自动设置为可用的。在PHP中,由于函数可以视为单独的程序片段,所以局部变量会覆盖全局变量的能见度,因此在函数中并无法直接调用全局变量。函数中若要使用全局变量,必须使用global关键字定义目标变量,以告诉函数主体此变量为全局变量。如下所示:
<?php
$one = 200;
$two = 100;
function demo(){
echo "运算结果:".($one + $two)."<br>"; //相当于在函数内部新声明并且没有赋初值的两个变量,结果输出:0
global $one,$two;
echo "运算结果是:".($one + $two)."<br>"; //使用了函数外部声明的全局变量,输出:300
}
在函数中使用全局变量除了使用关键字global外,在全局范围内访问变量的第二个方法,是用特殊的PHP自定义$GLOBALS数组。前面的例子可以写成使用$GLOBALS替代global。如下所示:
<?php
$one = 200;
$two = 100;
function demo(){
$GLOBALS[‘two‘] = $GLOBALS[‘one‘] + $GLOBALS[‘two‘];
}
demo();
echo $two; //输出结果300,说明全局变量被访问到重新赋值
在$GLOBALS数组中,每一个变量为一个元素,键名对应变量名,值对应变量的内容。$GLOBALS之所以在全局范围内存在,是因为$GLOBALS是一个超全局变量。