Resumo : neste tutorial, você aprenderá sobre escopos de variáveis PHP, que especificam a parte do código que pode acessar uma variável.
Introdução aos escopos de variáveis PHP
O escopo de uma variável determina qual parte do código pode acessá-la. Os locais onde a variável pode ser acessível determinam o escopo da variável.
No PHP, as variáveis possuem quatro tipos de escopos:
- Local
- Global
- Estático
- Parâmetros de função
Variáveis locais
Ao definir uma variável dentro de uma função , você só pode acessar essa variável dentro da função. E diz-se que a variável é local para a função.
O exemplo a seguir define a say()
função que exibe a 'Hi'
mensagem:
<?php
function say()
{
$message = 'Hi';
echo $message;
}
Linguagem de código: PHP ( php )
Dentro da say()
função, definimos a $message
variável. A $message
variável é uma variável local. E você não pode acessá-lo de fora da say()
função.
Além disso, a $message
variável só existe durante a execução da say()
função. Assim que a say()
função terminar, a $mesage
variável não existirá mais.
Variáveis globais
Quando você declara uma variável fora de uma função, a variável é global. Isso significa que você pode acessar a variável em qualquer lugar do script, exceto dentro de uma função. Por exemplo:
<?php
$message = 'Hello';
function say()
{
$message = 'Hi';
echo $message;
}
echo $message; // Hello
Linguagem de código: PHP ( php )
Neste script, temos duas variáveis com o mesmo nome $message
.
A primeira variável é a variável global porque a definimos fora de uma função. A $message
variável que definimos dentro da função é a variável local. Embora essas variáveis tenham o mesmo nome, são duas variáveis diferentes.
PHP permite que você acesse uma variável global dentro de uma função usando a global
palavra-chave. Por exemplo:
<?php
$message = 'Hello';
function say()
{
global $message;
echo $message; // Hello
}
say();
Linguagem de código: PHP ( php )
Como funciona.
- Primeiro, defina uma variável global chamada
$message
. - Segundo, faça referência à variável global
$message
dentro dasay()
função.
É importante observar que não é uma boa prática usar variáveis globais.
Variáveis superglobais
O PHP possui uma lista de variáveis integradas, conhecidas como variáveis superglobais. As variáveis superglobais fornecem informações sobre o ambiente do script PHP.
As variáveis superglobais estão sempre disponíveis em todas as partes do script. A tabela a seguir mostra a lista de variáveis superglobais do PHP:
Variáveis Superglobais | Significado |
---|---|
$GLOBAIS | Retorna uma matriz que contém variáveis globais. Os nomes das variáveis são usados para selecionar qual parte da matriz acessar. |
$_SERVER | Retorna dados sobre o ambiente do servidor web. |
$_GET | Retornar dados de GET solicitações. |
$_POST | Retornar dados de POST solicitações. |
$_COOKIE | Retornar dados de cookies HTTP |
$_FILES | Retorna dados de uploads de arquivos POST. |
$_ENV | Retorne informações sobre o ambiente do script. |
$_REQUEST | Retornar dados da solicitação HTTP |
$_SESSION | Variáveis de retorno registradas em uma sessão |
Variáveis estáticas
Uma variável estática retém seu valor entre chamadas de função. Além disso, uma variável estática só pode ser acessada dentro da função. Para definir uma variável estática, você usa a static
palavra-chave. Por exemplo:
<?php
function get_counter() {
static $counter = 1;
return $counter++;
}
echo get_counter() . '<br>'; // 1
echo get_counter() . '<br>'; // 2
echo get_counter() . '<br>'; // 3
Linguagem de código: PHP ( php )
Saída:
1
2
3
Linguagem de código: texto simples ( texto simples )
Como funciona.
- Primeiro, defina a
get_counter()
função com uma variável estática chamada$counter
. - Segundo, chame a
set_counter()
função três vezes. Como você percebe que o valor da$counter
variável aumenta em um após cada chamada de função.
Parâmetros de função
Os parâmetros da função são locais para a função. Portanto, os parâmetros da função só podem ser acessíveis dentro da função. Por exemplo:
<?php
function sum($items) {
$total = 0;
foreach($items as $item) {
$total += $item;
}
return $total;
}
// $items cannot be accessible here
echo sum([10,20,30]);
Linguagem de código: PHP ( php )
Neste exemplo, the $items
é o parâmetro da sum()
função. Só pode ser acessível dentro da sum()
função.
Resumo
- PHP tem quatro tipos de escopos de variáveis, incluindo parâmetros locais, globais, estáticos e de função.