在PHP中,我想知道GLOBAL和GLOBALS之间的区别。
一些例子:
print_r($GLOBALS);
答案 0 :(得分:13)
这是两个与此相关的不同事物:全局变量。
$GLOBALS
- 表示可作为数组访问的全局变量表的PHP superglobal数组。因为它是一个超全球化,它随处可见。
一个关联数组,包含对当前在脚本全局范围内定义的所有变量的引用。变量名是数组的键。
global
- 将特定全局变量导入局部变量表的关键字。
然后你问:
但是为什么我们无法使用
访问会话和cookie变量$GLOBALS
?
那是错误的,您可以使用$GLOBALS
访问会话和Cookie变量:
$GLOBALS['_SESSION']['session_variable_name']
然而,$_SESSION
也是一个超全局,所以您不需要使用$GLOBALS
或global
来访问来自任何地方的会话变量:
$_SESSION['session_variable_name']
同样适用于$_COOKIE
。
答案 1 :(得分:2)
$ GLOBALS是一个数组,global是一个声明或使用全局变量的关键字
答案 2 :(得分:2)
它们是两回事。
global
是一个关键字,它告诉该变量来自全局范围。例如。如果您要访问在外部定义的函数内的变量,则需要使用global关键字使其在函数中可访问。
$GLOBALS
是一个 superglobal
数组。 Superglobal只是意味着它可以在整个脚本的所有范围内使用,而无需使用global关键字。
答案 3 :(得分:1)
$ GLOBALS:包含对所有变量的引用的关联数组 目前在脚本的全局范围内定义。该 变量名是数组的键
GLOBAL / global是用于设置变量global的关键字。
参考文献:
答案 4 :(得分:0)
我认为您在$ GLOBAL和$ GLOBALS之间感到困惑。
$ GLOBALS是一个超全局数组,它在整个脚本的所有作用域中都可用,而无需使用global关键字。
您正在尝试使用$ GLOBAL访问会话和cookie变量,这是错误的。请改用$ GLOBALS。 $ GLOBAL没什么。
但是global是一个关键字,它表明变量来自全局范围。