Variáveis globais do PHP - Variáveis superglobais

As variáveis superglobais foram introduzidas no PHP 4.1.0 e são variáveis internas que estão sempre disponíveis em todo o escopo.

Variáveis globais do PHP - Variáveis superglobais

Muitas variáveis pré-definidas do PHP são 'superglobais', o que significa que estão disponíveis em todo o escopo do script. Não é necessário executar global $variable; para acessá-las em funções ou métodos.

Essas variáveis superglobais são:

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

Esta seção apresentará algumas variáveis superglobais e outras variáveis superglobais serão explicadas em capítulos posteriores.

$GLOBALS — Referência a todas as variáveis disponíveis no escopo global

A variável global $GLOBALS é usada para acessar variáveis globais em qualquer localização do script de PHP (desde funções ou métodos).

O PHP armazena todas as variáveis globais em um array chamado $GLOBALS[index]. O nome da variável é a chave do array.

O exemplo a seguir mostra como usar a variável superglobal $GLOBALS:

Exemplo

<?php 
$x = 75; 
$y = 25;
function addition() { 
  $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
}
addition(); 
echo $z; 
?>

Executar Exemplo

No exemplo acima, devido a z ser uma variável do array $GLOBALS, ela pode ser acessada fora da função.

PHP $_SERVER

A variável superglobal $_SERVER armazena informações sobre cabeçalhos, caminhos e localização do script.

O exemplo a seguir mostra como usar alguns elementos do $_SERVER:

Exemplo

<?php 
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>

Executar Exemplo

A tabela a seguir lista os elementos mais importantes que você pode acessar em $_SERVER:

Elemento/ Código Descrição
$_SERVER['PHP_SELF'] Retorna o nome do arquivo onde o script está executando.
$_SERVER['GATEWAY_INTERFACE'] Retorna a versão do padrão CGI usado pelo servidor.
$_SERVER['SERVER_ADDR'] Retorna o endereço IP do servidor onde o script está executando.
$_SERVER['SERVER_NAME'] Retorna o nome do host do servidor onde o script está executando (por exemplo, www.codew3c.com).
$_SERVER['SERVER_SOFTWARE'] Retorna a string de identificação do servidor (por exemplo, Apache/2.2.24).
$_SERVER['SERVER_PROTOCOL'] Retorna o nome e a versão do protocolo de comunicação usado para solicitar a página (por exemplo, “HTTP/1.0”)
$_SERVER['REQUEST_METHOD'] Retorna o método de solicitação usado para acessar a página (por exemplo, POST).
$_SERVER['REQUEST_TIME'] Retorna o timestamp do início da solicitação (por exemplo, 1577687494).
$_SERVER['QUERY_STRING'] Retorna a string de consulta, se acessar esta página através de uma string de consulta.
$_SERVER['HTTP_ACCEPT'] Retorna os cabeçalhos da solicitação da solicitação atual.
$_SERVER['HTTP_ACCEPT_CHARSET'] Retorna o cabeçalho Accept_Charset da solicitação atual (por exemplo, utf-8, ISO-8859-1)
$_SERVER['HTTP_HOST'] Retorna o cabeçalho Host da solicitação atual.
$_SERVER['HTTP_REFERER'] Retorna a URL completa da página atual (não confiável, pois não todos os agentes de usuário suportam).
$_SERVER['HTTPS'] Se é através do protocolo HTTP seguro que consulta scripts.
$_SERVER['REMOTE_ADDR'] Retorna o endereço IP do usuário que está navegando na página atual.
$_SERVER['REMOTE_HOST'] Retorna o nome do host do usuário que está navegando na página atual.
$_SERVER['REMOTE_PORT'] Retorna o número da porta usada pelo cliente para se conectar ao servidor web.
$_SERVER['SCRIPT_FILENAME'] Retorna o caminho absoluto do script atual em execução.
$_SERVER['SERVER_ADMIN'] Este valor especifica o parâmetro SERVER_ADMIN no arquivo de configuração do servidor Apache.
$_SERVER['SERVER_PORT'] O porta usada pelo servidor web. O valor padrão é “80”.
$_SERVER['SERVER_SIGNATURE'] Retorna a versão do servidor e o nome do host virtual.
$_SERVER['PATH_TRANSLATED'] O caminho básico do sistema de arquivos do script atual (não o diretório raiz do documento).
$_SERVER['SCRIPT_NAME'] Retorna o caminho do script atual.
$_SERVER['SCRIPT_URI'] Retorna a URI da página atual.

PHP $_REQUEST

PHP $_REQUEST é usado para coletar os dados do formulário submetido HTML.

O exemplo a seguir mostra um formulário que contém campos de entrada e um botão de envio. Quando o usuário clicar no botão de envio para enviar dados do formulário, os dados do formulário serão enviados para o arquivo especificado na propriedade action do tag <form>. Neste exemplo, especificamos o arquivo em si para processar os dados do formulário. Se você precisar usar outro arquivo PHP para processar os dados do formulário, altere para o nome do arquivo escolhido. Em seguida, podemos usar a variável global super $_REQUEST para coletar os valores dos campos de entrada:

Exemplo

<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Nome: <input type="text" name="fname">
<input type="submit">
</form>
<?php 
$name = $_REQUEST['fname']; 
echo $name; 
?>
</body>
</html>

Executar Exemplo

PHP $_POST

PHP $_POST é amplamente utilizado para coletar os dados do formulário após a submissão method="post" do HTML formulário. $_POST também é frequentemente usado para passar variáveis.

O exemplo a seguir mostra um formulário que contém campos de entrada e um botão de envio. Quando o usuário clica no botão de envio para enviar dados, os dados do formulário serão enviados para o arquivo especificado na propriedade action do tag <form>. Neste exemplo, especificamos o arquivo em si para processar os dados do formulário. Se você desejar usar outra página PHP para processar os dados do formulário, altere para o nome do arquivo escolhido. Em seguida, podemos usar a variável global super $_POST para coletar os valores dos campos de entrada:

Exemplo

<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Nome: <input type="text" name="fname">
<input type="submit">
</form>
<?php 
$name = $_POST['fname'];
echo $name; 
?>
</body>
</html>

Executar Exemplo

PHP $_GET

PHP $_GET também pode ser usado para coletar dados do formulário HTML (method="get") após o envio.

$_GET também pode coletar dados enviados na URL.

Suponha que tenhamos uma página com hiperlinks parametrizados:

<html>
<body>
<a href="test_get.php?subject=PHP&web=codew3c.com">Testar $GET</a>
</body>
</html>

Quando o usuário clicar no link "Testar $GET", os parâmetros "subject" e "web" serão enviados para "test_get.php", e então você pode acessar esses valores em "test_get.php" através de $_GET.

O exemplo a seguir é o código do "test_get.php":

Exemplo

<html>
<body>
<?php 
echo "Estudando " . $_GET['web'] . " em " . $_GET['subject'];
?>
</body>
</html>

Executar Exemplo

Dica:Você estará Formulários PHP Nesta seção, você aprenderá mais sobre $_POST e $_GET.