GLOBALS和GLOBAL有什么区别?

bal*_*php 6 php global

在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.


Mar*_*cus 6

他们是两个不同的东西。

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

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