GLOBALS和GLOBAL有什么区别?

时间:2011-11-07 10:46:15

标签: php global

在PHP中,我想知道GLOBAL和GLOBALS之间的区别。

一些例子:

print_r($GLOBALS);

5 个答案:

答案 0 :(得分:13)

这是两个与此相关的不同事物:全局变量。

$GLOBALS - 表示可作为数组访问的全局变量表的PHP superglobal数组。因为它是一个超全球化,它随处可见。

  

一个关联数组,包含对当前在脚本全局范围内定义的所有变量的引用。变量名是数组的键。

global - 将特定全局变量导入局部变量表的关键字。


然后你问:

  

但是为什么我们无法使用$GLOBALS

访问会话和cookie变量

那是错误的,您可以使用$GLOBALS访问会话和Cookie变量:

$GLOBALS['_SESSION']['session_variable_name']

然而,$_SESSION也是一个超全局,所以您不需要使用$GLOBALSglobal来访问来自任何地方的会话变量:

$_SESSION['session_variable_name']

同样适用于$_COOKIE

答案 1 :(得分:2)

$ GLOBALS是一个数组,global是一个声明或使用全局变量的关键字

答案 2 :(得分:2)

它们是两回事。

global是一个关键字,它告诉该变量来自全局范围。例如。如果您要访问在外部定义的函数内的变量,则需要使用global关键字使其在函数中可访问。

$GLOBALS是一个 superglobal数组。 Superglobal只是意味着它可以在整个脚本的所有范围内使用,而无需使用global关键字。

答案 3 :(得分:1)

  

$ GLOBALS:包含对所有变量的引用的关联数组   目前在脚本的全局范围内定义。该   变量名是数组的键

     

GLOBAL / global是用于设置变量global的关键字。

参考文献:

http://php.net/GLOBALS

http://php.net/global

答案 4 :(得分:0)

我认为您在$ GLOBAL和$ GLOBALS之间感到困惑。

$ GLOBALS是一个超全局数组,它在整个脚本的所有作用域中都可用,而无需使用global关键字。

您正在尝试使用$ GLOBAL访问会话和cookie变量,这是错误的。请改用$ GLOBALS。 $ GLOBAL没什么。

但是global是一个关键字,它表明变量来自全局范围。