在PHP中,我想知道GLOBAL和GLOBALS之间的区别.
一些例子:
print_r($GLOBALS);
Run Code Online (Sandbox Code Playgroud)
hak*_*kre 13
这是与之相关的两个不同的事物:全局变量.
$GLOBALS- PHP 超全局数组,表示可作为数组访问的全局变量表.因为它是一个超级全球,所以它随处可见.
一个关联数组,包含对当前在脚本全局范围内定义的所有变量的引用.变量名是数组的键.
global - 将特定全局变量导入局部变量表的关键字.
然后你问:
但是为什么我们不能通过使用访问会话和cookie变量
$GLOBALS?
这是错误的,您可以使用以下方法访问会话和cookie变量$GLOBALS:
$GLOBALS['_SESSION']['session_variable_name']
Run Code Online (Sandbox Code Playgroud)
但是$_SESSION也是一个超全局,所以你不需要使用任何一个$GLOBALS也不需要global从任何地方访问会话变量:
$_SESSION['session_variable_name']
Run Code Online (Sandbox Code Playgroud)
同样适用于$_COOKIE.
他们是两个不同的东西。
global是一个关键字,表明该变量来自全局范围。例如,如果您要访问在外部定义的函数内部的变量,则需要使用 global 关键字以使其可以在函数中访问。
$GLOBALS是一个superglobal数组。超全局只是意味着它在整个脚本的所有范围内都可用,而无需使用 global 关键字。