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.