在PHP中,我想知道GLOBAL和GLOBALS之间的区别。
一些例子:
print_r($GLOBALS);
$GLOBALS
- PHP 超级全局变量数组,用作表示全局变量表并以数组形式访问。由于它是超级全局变量,所以随处可用。
这是一个关联数组,其中包含对当前在脚本全局范围内定义的所有变量的引用。变量名是数组的键。
global
- 导入特定全局变量到本地变量表的关键字。
然后你问:
但是为什么我们无法使用
$GLOBALS
访问会话和cookie变量?
那是错误的,您可以使用$GLOBALS
访问会话和cookie变量:
$GLOBALS['_SESSION']['session_variable_name']
不过$_SESSION
也是一个superglobal,所以你无需使用$GLOBALS
或global
就可以从任何地方访问会话变量:
$_SESSION['session_variable_name']
对于$_COOKIE
同样适用。
$GLOBALS是一个数组,global是一个关键字,用于声明或使用全局变量。
我认为你的困惑在于$GLOBAL和$GLOBALS之间。
$GLOBALS是一个超全局数组,在脚本的所有范围内都可以使用,无需使用global关键字。
你试图使用$GLOBAL访问会话和cookie变量,这是错误的。请改用$GLOBALS。$GLOBAL什么也不是。
但是global是一个关键字,它告诉变量来自全局作用域。
GLOBAL/global 是设置变量为全局变量的关键字。
参考资料:
$GLOBALS
是一个数组,global
是 PHP 的关键字。它们本质上做的是相同的事情,但方式不同。 - Pekka