$GLOBALS
(PHP 4, PHP 5, PHP 7, PHP 8)
$GLOBALS — Referencia todas variáveis disponíveis no escopo global
Descrição
Um array associativo contendo referências para todas as variáveis que
estão atualmente definidas no escopo global do script. O
nome das variáveis são chaves do array.
Exemplos
Exemplo #1 Exemplo da $GLOBALS
<?php
function teste()
{
$foo = "variável local";
echo '$foo no escopo global: ' . $GLOBALS["foo"] . "\n";
echo '$foo no escopo atual: ' . $foo . "\n";
}
$foo = "Conteúdo de exemplo";
teste();
?>
O exemplo acima produzirá
algo semelhante a:
$foo no escopo global: Conteúdo de exemplo
$foo no escopo atual: variável local
Aviso
A partir do 8.1.0, acesso de escrita a todo o array $GLOBALS não é mais suportado:
Exemplo #2 Escrever em todo o $GLOBALS irá resultar em um erro.
<?php
// Gera um erro em tempo de compilação:
$GLOBALS = [];
$GLOBALS += [];
$GLOBALS =& $x;
$x =& $GLOBALS;
unset($GLOBALS);
array_pop($GLOBALS);
// ...e qualquer outra operação de escrita/leitura em $GLOBALS
?>
Notas
Nota: Esta é uma variável 'superglobal' ou
variável global automática. Isso significa simplesmente que ela está disponível em
todos os escopos de um script. Não há necessidade de usar
global $variable; para acessá-la dentro de funções ou métodos.
Nota:
Disponibilidade da variável
Diferente de todas as outras superglobais,
$GLOBALS tem essencialmente sempre estado disponível no PHP.
Nota:
A partir do PHP 8.1.0, $GLOBALS agora é uma cópia somente-leitura da
tabela de símbolos globais.
Isto é, variáveis globais não podem ser modificadas por meio de suas cópias.
Anteriormente, o array $GLOBALS era excluído do comportamento
usual "por valor" dos arrays PHP e variáveis globais podiam ser modificadas por meio de suas cópias.