$GLOBALS
представляет всю таблицу глобальных переменных в виде Array
.
Ключевое слово global
позволяет указать одну или несколько меток переменных, которые являются частью таблицы глобальных переменных в таблице локальных переменных. Часто называют import в других ответах.
Было время, когда $GLOBALS
в области действия функции не обновлял глобальную таблицу немедленно. Но я думаю, что это сейчас исправлено. По крайней мере, я больше не мог его воспроизводить.
Таким образом, разница заключается лишь в семантике, как написать что-то.
Однако между ними есть разница. Вы не можете сбросить глобальные переменные, когда вы делаете их доступными в локальной области через ключевое слово global
.
$var = 1;
foo();
function foo()
{
global $var;
unset($var); # won't unset the global variable
}
Но вы можете получить к ним доступ через $GLOBALS
.
$var = 1;
foo();
function foo()
{
unset($GLOBALS['var']); # unsets the global variable
}
Это довольно специфично, если интересно, посмотрите Демо .