php中全局变量需通过global、$globals、返回值赋值、static或define()五种方式使用:global和$globals可读写外部变量;返回值赋值间接更新;static保持函数内状态;define()定义不可变常量。

在PHP中,全局变量是指在函数外部定义、可在整个脚本范围内访问的变量。但当在函数内部需要使用这些变量时,必须通过特定方式声明其作用域。以下是几种定义和使用PHP全局变量的具体方法:
一、使用global关键字在函数内访问全局变量
global关键字用于在函数内部显式声明要使用的全局变量,使函数能够读取或修改该变量的值。
1、在函数外部定义一个变量,例如 $count = 10;
2、在函数内部第一行写入 global $count;
立即学习“PHP免费学习笔记(深入)”;
3、后续即可对 $count 进行赋值或输出操作,如 $count++ 或 echo $count;
4、执行该函数后,原全局变量 $count 的值将被实际修改。
二、通过$GLOBAL超全局数组访问全局变量
$GLOBALS 是PHP内置的超全局数组,索引为变量名字符串,可直接读写所有全局作用域中的变量,无需在函数内额外声明。
1、在函数外定义 $user_name = "admin";
2、在函数内部使用 $GLOBALS['user_name'] 获取或修改该变量;
3、例如:$GLOBALS['user_name'] = "guest";
4、该操作会直接影响函数外部同名全局变量的值。
三、在函数中返回全局变量值并重新赋值
不使用global或$GLOBALS,而是通过函数返回值间接更新全局变量,适用于需控制变量变更时机的场景。
1、在函数外部定义 $status = false;
2、编写函数 function update_status() { return true; };
3、在函数外部执行 $status = update_status();
4、此时 $status 的值变为 true,且完全由函数返回值决定。
四、使用static关键字模拟静态全局状态
static变量在函数首次执行时初始化,之后每次调用保留上次值,虽非真正全局变量,但在单次请求中可实现跨多次调用的状态保持。
1、在函数内部声明 static $counter = 0;
2、每次调用该函数时,$counter 不会重置为0;
3、执行 $counter++ 后,下次调用时该值延续递增;
4、注意:static变量仅限于当前函数作用域,不能被其他函数直接访问。
五、通过define()定义全局常量
define()用于创建脚本全程不可更改的全局常量,适用于配置项、标识符等固定值场景。
1、调用 define("SITE_URL", "https://example.com");
2、定义后可在任何位置(包括函数内外)直接使用 SITE_URL;
3、尝试再次 define() 或赋值操作将触发警告;
4、常量名默认区分大小写,建议全大写以示规范。











