PHP $GLOBALS
1. PHP $GLOBALS
$GLOBALS 超全局变量是一个内置的关联数组,其中包含了指向脚本中所有全局变量的引用。
PHP 的超全局变量是内置变量,它们始终可以在所有的作用域中被直接访问!
2. 全局变量 (Global Variables)
全局变量是指可以从任何作用域访问的变量。
在最外层作用域声明的变量会自动成为全局变量,并且可以被任何作用域调用。
然而,如果您想在函数内部使用外部的全局变量,您必须使用 global 关键字显式地声明它们,或者通过 $GLOBALS 语法来引用它们。
示例
在函数内部引用全局变量 $x:
$x = 75;
function myfunction() {
echo $GLOBALS['x'];
}
myfunction();这一点与许多其他的编程语言不同。在其他语言中,全局变量通常无需特殊声明即可在函数内直接使用。
示例
在 PHP 中,如果在函数内部不使用 $GLOBALS 语法或 global 关键字直接引用全局变量,您将得不到任何结果(甚至会引发错误):
$x = 75;
function myfunction() {
echo $x; // 这里会报错,因为函数内不存在局部的 $x
}
myfunction();您也可以使用 global 关键字将函数内部要使用的变量显式定义为全局变量:
示例
在函数内部将 $x 声明为全局:
$x = 75;
function myfunction() {
global $x;
echo $x;
}
myfunction();3. 创建全局变量
无论您是否使用 $GLOBALS 语法,在代码的最外层作用域中创建的变量都天然是全局变量。
示例
$x = 100;
echo $GLOBALS['x'];
echo $x;默认情况下,在函数内部创建的变量属于局部变量(只在该函数内部有效)。但是,您完全可以利用 $GLOBALS 语法在函数内部直接创建一个全新的全局变量。
示例
在函数内部创建一个全局变量 $z,并在函数外部成功调用它:
$x = 10;
$y = 20;
function result() {
// 在函数内直接创建并赋值给全局变量 z
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
result(); // 必须先调用函数执行逻辑
echo $z; // 在函数外部输出 30