Entenda Variáveis Globais e Superglobais no PHP

Quando começamos a desenvolver em PHP, é comum nos perguntarmos: como acessar variáveis definidas fora de uma função dentro dela? Ou como usar informações do servidor de forma prática? É aqui que entram as variáveis globais e superglobais. Vamos entender o que elas são, como funcionam, e quando usá-las.


O que são variáveis globais?

No PHP, variáveis globais são aquelas declaradas fora de funções, métodos ou classes. No entanto, uma variável global não é automaticamente acessível dentro de funções. Para usá-la, é necessário declará-la explicitamente com a palavra-chave global.

Exemplo:

<?php
$nome = "Maria";

function mostrarNome() {
    global $nome; // Permite acessar a variável global $nome
    echo "Olá, $nome!";
}

mostrarNome(); // Saída: Olá, Maria!
?>

Sem global, esse código geraria um erro, pois $nome estaria fora do alcance da função.


O que são variáveis superglobais?

As superglobais, como $_GET, $_POST e $_SERVER, são variáveis especiais que estão disponíveis em qualquer parte do código, independentemente do escopo. Não é necessário usar global para acessá-las.

Exemplo:

<?php
function exibirUrlAtual() {
    echo $_SERVER['REQUEST_URI']; // Superglobal, acessível diretamente
}

exibirUrlAtual(); // Mostra a URL da página atual
?>

Superglobais são essenciais para manipular dados enviados pelo usuário, informações do servidor, sessões e muito mais.


Quando usar global?

Embora útil, o uso de global deve ser evitado em excesso, pois pode dificultar a manutenção do código. Sempre que possível, passe variáveis como argumentos para funções.

Exemplo com global:

<?php
$mensagem = "Bem-vindo ao site!";

function exibirMensagem() {
    global $mensagem; // Acessando a variável global
    echo $mensagem;
}

exibirMensagem(); // Saída: Bem-vindo ao site!
?>

Exemplo sem global (recomendado):

<?php
$mensagem = "Bem-vindo ao site!";

function exibirMensagem($texto) {
    echo $texto;
}

exibirMensagem($mensagem); // Saída: Bem-vindo ao site!
?>

As vantagens das superglobais

As superglobais permitem acessar rapidamente informações do ambiente e entradas do usuário. Alguns exemplos comuns incluem:

  • Dados da URL ($_GET),
  • Dados de formulários ($_POST),
  • Informações de sessão ($_SESSION),
  • Informações sobre o servidor ($_SERVER).

Exemplo prático:

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $nome = $_POST['nome'];
    echo "Olá, $nome!";
}
?>

Nesse caso, $_POST['nome'] captura o valor enviado por um formulário HTML.


Resumo

  • Use global para acessar variáveis definidas no escopo principal, mas prefira passar variáveis como argumentos.
  • As superglobais são acessíveis em qualquer lugar do código e são ideais para trabalhar com dados do ambiente ou entradas do usuário.
  • Sempre valide os dados recebidos para garantir a segurança.

Rolar para cima