Um dos aspectos mais interessantes no PHP sem dúvida são suas variáveis superglobais. Elas são acessíveis em qualquer script PHP e em qualquer lugar do escopo de variáveis. Elas na verdade são vetores (arrays) predefinidos que provém diversos tipos de informações. Vamos estudá-las e aprender a utilizá-las corretamente, de forma a melhorar e agilizar nosso modo de programar.
Este artigo será dividido em 2 partes, como mostrado a seguir:
Parte I:
Parte II:
Por agora, vamos começar com a Parte I deste artigo.
1. Tabela das variáveis superglobais do PHP
| Variável | Descrição |
| $GLOBALS | Permite acessar qualquer variável que esteja no escopo global do nosso script PHP. As chaves de $GLOBALS devem ter o mesmo nome da variável que se deseja acessar. |
| $_SERVER | Exibe uma ampla gama de informações sobre o servidor, tais como cabeçalhos, caminhos e localização dos scripts. |
| $_GET | Fornece o acesso às variáveis HTTP enviadas pelo usuário através da URL. A chave de $_GET deve ser o nome da variável contida na URL que se deseja acessar. |
| $_POST | Fornece o acesso às variáveis HTTP enviadas pelo usuário fazendo uso de um formulário com método POST. A chave de $_POST deve ser o nome da variável contida no formulário enviado que se deseja acessar. |
| $_COOKIE | |
| $_REQUEST | Por padrão, contém acesso aos valores contidos em $_GET, $_POST e $_COOKIE |
| $_SESSION | Este array superglobal tem a habilidade de permitir que você acesse as variáveis de sessão do servidor, criadas na sessão ou login do usuário com seu script PHP. |
| $_ENV | Este é um vetor associativo que contém em cada uma de suas chaves informações de ambiente |
2. Analisando a entrada de dados do usuário com variáveis superglobais
As variáveis $_GET, $_POST e $_REQUEST servem para tratar os dados enviados pelo usuário via URL ou por um fomrulário. $_GET trata as variáveis enviadas pela url (método GET) e $_POST as enviadas por um formulário (método POST). $_REQUEST possui uma função muito especial: ela contém os valores de $_GET, $_POST e $_COOKIE, respeitando esta ordem de precedência.
$_REQUEST não é tratada como uma referência, mas sim como uma cópia de $_GET, $_POST e $_COOKIE, portanto, alterar o valor de $_GET['nome'] durante a execução do programa não irá alterar o valor de $_REQUEST['nome']. Veja um exemplo abaixo:
URI da requisição ao servidor: http://www.andresa.net/exemplo.php?nome=Andresa&time=Palmeiras
$_GET['nome']="Richarlyson";
//vai imprimir "Meu nome é Andresa e meu time é o Palmeiras
echo'Meu nome é' . $_REQUEST['nome']. ' e meu time é o ' . $_REQUEST['time'];
//vai imprimir "O Richarlyson não é gay, seus chatos =("
echo 'O ',$_GET['nome'],' NÃO É GAY, seus chatos =(';
NOTA: O operador de concatenação de string do PHP é o ‘ . ‘ (ponto), mas você também pode utilizar a ‘ , ‘ (vírgula). Note que no primeiro comando echo() eu usei o ponto e no segundo a vírgula. Ambos devem funcionar normalmente.
Como você já viu, com $_GET nós pegamos os dados vindos da URL. Quando variáveis são enviadas pelo formulário usando o método POST, as variáveis só são acessíveis utilizando $_POST ou $_REQUEST. Da mesma maneira, se eu modificar o valor de $_POST, nada será alterado em $_REQUEST.
O $_POST é usado para trabalhar com variáveis enviadas via POST por um formulário em HTML. Caso você ainda não saiba usar formulários HTML junto com o PHP, então faça o download de Exemplo de formulário HTML usando método POST com PHP (97)
3. Usando $GLOBALS para acessar variáveis do escopo global
Assim como todas (todas?) as linguagens, o PHP também diferencia as variáveis através do escopo. Veja no exemplo abaixo:
$fruta="Maçã";
function mostrarFruta()
{
$fruta="uva";
return $fruta;
}
//Imprime "Maçã";
echo $fruta;
//Imprime "uva"
echo mostrarFruta();
Note que dentro da função mostrarFruta(), a variável $fruta tem um valor, e fora da função, no escopo global, ela possui outra. Mas e se eu precisar acessar uma variável que esteja fora da função? Para executar essa tarefa há 2 maneiras, e uma delas e com uma variável super global. Veja abaixo:
$fruta="maçã";
function mostrarFruta1()
{
global $fruta;
echo $fruta;
}
function mostrarFruta2()
{
$fruta="uva";
echo $GLOBALS['fruta'];
echo $fruta;
}
//Imprime "maçã"
mostrarFruta1();
//Imprime "maçã" e depois "uva"
mostrarFruta2();
Os dois exemplos funcionam para o meu propósito. Na primeira, é utilizada a variável $fruta do escopo global até o fim da função, enquanto na segunda, o valor global só é utilizado no momento em que eu uso o $GLOBALS.
Vamos ficando por aqui, mas a segunda parte do artigo já está praticamente pronta! Aguardem e não se esqueçam: comentem!
One Response
Leave a Reply
Muito bom!
Parabéns
Mas o Richarlyson eh gay sim..