Variáveis super globais foram habilitadas após o PHP 4.1.0. São variáveis que acompanham o sistema PHP e estão disponíveis em todo o escopo de um script.
Várias superglobais são predefinidas em PHP, o que significa que estão disponíveis em todo o escopo de um script. Você pode usá-lo em funções e classes sem instruções especiais.
Lista de variáveis superglobais do PHP:
$GLOBAIS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
Neste capítulo explicaremos diversas variáveis superglobais comumente usadas e apresentaremos as variáveis restantes nos próximos capítulos.
$GLOBALS é um grupo de variáveis superglobais em PHP que pode ser acessado em todo o escopo de um script PHP.
$GLOBALS é um array global combinado contendo todas as variáveis. O nome da variável é a chave do array.
O exemplo a seguir mostra como usar a variável superglobal $GLOBALS:
<?php $x = 75 ; $ y = 25 ; adição ( ) { $GLOBALS [ ' z ' ] = $GLOBALS [ ' x ' ] + $GLOBALS [ ' y ' ] } ; adição ( ) ; $z ? >
No exemplo acima, z é uma variável superglobal no array $GLOBALS, que também pode ser acessada fora da função.
$_SERVER é um array contendo informações como cabeçalho, caminho e locais de script. Os itens nesta matriz são criados pelo servidor web. Não há garantia de que todos os servidores oferecerão todos os itens. Os servidores poderão ignorar alguns ou servir itens não listados aqui.
O exemplo a seguir mostra como usar elementos em $_SERVER:
<?php eco $ _SERVER [ ' PHP_SELF ' ] ; " <br> " ; eco $ _SERVER [ ' SERVER_NAME ' ] ; " <br> " ; eco $ _SERVER [ ' HTTP_HOST ' ] ; " <br> " ; eco $ _SERVER [ ' HTTP_REFERER ' ] ; " <br> " ; eco $ _SERVER [ ' HTTP_USER_AGENT ' ] ; " <br> " ; eco $_SERVER [ ' SCRIPT_NAME ' ] ? >
A tabela a seguir lista os elementos importantes em todas as variáveis $_SERVER:
elemento/código | descrever |
---|---|
$_SERVER['PHP_SELF'] | O nome do arquivo do script atualmente em execução, relacionado à raiz do documento. Por exemplo, usar $_SERVER['PHP_SELF'] em um script em http://example.com/test.php/foo.bar resultará em /test.php/foo.bar. A constante __FILE__ contém o caminho completo e o nome do arquivo atual (ou seja, que contém). A partir da versão 4.3.0 do PHP, esta variável conterá o nome do script se o PHP estiver sendo executado no modo de linha de comando. Esta variável não está disponível em versões anteriores. |
$_SERVER['GATEWAY_INTERFACE'] | A versão da especificação CGI usada pelo servidor, por exemplo, "CGI/1.1". |
$_SERVER['SERVER_ADDR'] | O endereço IP do servidor onde o script está sendo executado atualmente. |
$_SERVER['SERVER_NAME'] | O nome do host do servidor onde o script está sendo executado atualmente. Se o script estiver em execução em um host virtual, o nome será determinado pelo valor configurado para esse host virtual. (por exemplo: www.codercto.com) |
$_SERVER['SERVER_SOFTWARE'] | String de identificação do servidor, fornecida nas informações do cabeçalho ao responder à solicitação. (por exemplo: Apache/2.2.24) |
$_SERVER['SERVER_PROTOCOL'] | O nome e a versão do protocolo de comunicação usado ao solicitar a página. Por exemplo, "HTTP/1.0". |
$_SERVER['REQUEST_METHOD'] | O método de solicitação usado para acessar a página; por exemplo, "GET", "HEAD", "POST", "PUT". |
$_SERVER['REQUEST_TIME'] | O carimbo de data/hora em que a solicitação foi iniciada. Disponível desde PHP 5.1.0. (por exemplo: 1377687496) |
$_SERVER['QUERY_STRING'] | string de consulta (query string), se houver, por meio da qual o acesso à página é realizado. |
$_SERVER['HTTP_ACCEPT'] | O conteúdo do item Accept: no cabeçalho da solicitação atual, se existir. |
$_SERVER['HTTP_ACCEPT_CHARSET'] | O conteúdo do item Accept-Charset: no cabeçalho da solicitação atual, se existir. Por exemplo: "iso-8859-1,*,utf-8". |
$_SERVER['HTTP_HOST'] | O conteúdo do campo Host: no cabeçalho da solicitação atual, se presente. |
$_SERVER['HTTP_REFERER'] | Direciona o agente do usuário para o endereço da página anterior à página atual, se existir. Determinado pelas configurações do agente do usuário. Nem todos os agentes de usuário definirão este item e alguns também fornecem a função de modificar HTTP_REFERER. Resumindo, o valor não é confiável. ) |
$_SERVER['HTTPS'] | Defina um valor não vazio se o script for acessado por meio do protocolo HTTPS. |
$_SERVER['REMOTE_ADDR'] | O endereço IP do usuário que visualiza a página atual. |
$_SERVER['REMOTE_HOST'] | O nome do host do usuário que está navegando na página atual. A resolução reversa do DNS não depende do REMOTE_ADDR do usuário. |
$_SERVER['REMOTE_PORT'] | O número da porta usada na máquina do usuário para conectar-se ao servidor web. |
$_SERVER['SCRIPT_FILENAME'] | O caminho absoluto do script atualmente em execução. |
$_SERVER['SERVER_ADMIN'] | Este valor especifica o parâmetro SERVER_ADMIN no arquivo de configuração do servidor Apache. Se o script estiver em execução em um host virtual, esse valor será aquele desse host virtual. (por exemplo: algué[email protected]) |
$_SERVER['SERVER_PORT'] | A porta usada pelo servidor web. O valor padrão é "80". Se estiver usando uma conexão segura SSL, esse valor será a porta HTTP definida pelo usuário. |
$_SERVER['SERVER_SIGNATURE'] | Uma string contendo a versão do servidor e o nome do host virtual. |
$_SERVER['PATH_TRANSLATED'] | O caminho base do sistema de arquivos (não a raiz do documento) onde o script atual está localizado. Este é o resultado depois que a imagem do servidor foi criada de um caminho virtual para real. |
$_SERVER['SCRIPT_NAME'] | Contém o caminho para o script atual. Isto é útil quando a página precisa apontar para si mesma. A constante __FILE__ contém o caminho completo e o nome do arquivo do script atual (como um arquivo de inclusão). |
$_SERVER['SCRIPT_URI'] | URI é usado para especificar a página a ser acessada. Por exemplo "/index.html". |
PHP $_REQUEST é usado para coletar dados enviados por formulários HTML.
O exemplo a seguir mostra um formulário com campos de entrada e botões de envio. Quando o usuário envia os dados do formulário clicando no botão "Enviar", os dados do formulário serão enviados para o arquivo de script especificado no atributo action da tag <form>. Neste exemplo, especificamos o arquivo para tratar os dados do formulário. Se quiser que outro arquivo PHP manipule esses dados, você pode modificar o nome do arquivo de script especificado. Então, podemos usar a variável superglobal $_REQUEST para coletar dados do campo de entrada no formato:
<html><body><form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">Nome: <input type="text" name="fname"><tipo de entrada ="enviar"></form><?php $nome = $_REQUEST['fnome']; echo $nome ?></body></html>;
PHP $_POST é amplamente utilizado para coletar dados de formulário. Especifique este atributo na tag do formulário HTML: "method="post".
O exemplo a seguir mostra um formulário com campos de entrada e botões de envio. Quando o usuário envia os dados do formulário clicando no botão "Enviar", os dados do formulário serão enviados para o arquivo de script especificado no atributo action da tag <form>. Neste exemplo, especificamos o arquivo para tratar os dados do formulário. Se quiser que outro arquivo PHP manipule esses dados, você pode modificar o nome do arquivo de script especificado. Então, podemos usar a variável superglobal $_POST para coletar os dados do campo de entrada no formulário:
<html><body><form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">Nome: <input type="text" name="fname"><tipo de entrada ="enviar"></form><?php $nome = $_POST['fnome']; echo $nome ?></body></html>;
PHP $_GET também é amplamente utilizado para coletar dados de formulário. Especifique este atributo na tag do formulário HTML: "method="get".
$_GET também pode coletar dados enviados na URL.
Suponha que temos uma página HTML com hiperlink contendo parâmetros:
<html><body><a href="test_get.php?subject=PHP&web=codercto.com">Teste $GET</a></body></html>
Quando o usuário clicar no link "Test $GET", os parâmetros "subject" e "web" serão enviados para "test_get.php". Você pode usar a variável $_GET no arquivo "test_get.php" para obter isso. dados.
O exemplo a seguir mostra o código do arquivo "test_get.php":
<html><body><?php echo "Estudo " . $_GET['subject'] " em " .
Dica: Se você quiser saber mais sobre $_POST e $_GET, visite nosso capítulo sobre Formulários PHP.