前言
最近进行项目优化改造,针对项目内参数传递想统一规整一下,目前传参满天飞的局面极其不合理,一方面参数传递中间被修改后容易引起歧义,另一方面本身多层传递对业务逻辑实现上也很不友好,期间调研了全局变量作为参考,虽然最终没有采取
$GLOBALS
,还是记录一下
1.针对global
关键字在函数内部访问全局变量。您可以在函数内部使用 global
关键字来引用全局变量,然后在函数内使用它。请注意,在函数内部更改全局变量的值将影响整个脚本中该变量的值。以下是一个示例:
<?php
// 定义全局变量
$myGlobalVar = "Hello, world!";
function myFunction() {
global $myGlobalVar; // 使用 global 关键字声明全局变量
echo $myGlobalVar;
}
myFunction(); // 输出:Hello, world!
2.另一种方法是使用 $GLOBALS 数组访问全局变量,$GLOBALS
一个包含了全部变量的全局组合数组。变量的名字就是数组的键。(即所有出现过的全局变量,都可通过$GLOBALS获取到)
如下所示:
<?php
// 定义全局变量
$GLOBALS['myGlobalVar'] = "Hello, world!";
function myFunction() {
echo $GLOBALS['myGlobalVar'];
//$GLOBALS['myGlobalVar']是外部的全局变量$myGlobalVar本身,也可以使用这种方式。
echo $myGlobalVar;
}
myFunction(); // 输出:Hello, world!
这种方法可以直接使用 $GLOBALS 数组在函数内部访问全局变量,不需要使用 global 关键字。但是,与使用 global 关键字访问全局变量相比,这种方法可能会导致代码可读性较差。