Em PHP, variáveis ??podem ser declaradas em qualquer lugar do script.
O âmbito de uma variável é a parte do script onde a variável pode ser referenciado / usada.
PHP tem três escopos de variáveis ??diferentes:
- local
- global
- estático
Âmbito global e local
Uma variável declarada fora de uma função tem um escopo global e só pode ser acessado fora de uma função:
Exemplo
$x = 5; // global scope
function myTest() {
// using x inside this function will generate an error
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
echo "<p>Variable x outside function is: $x</p>";
?>
Uma variável declarada dentro de uma função tem um âmbito local e só pode ser acessado dentro dessa função:
Exemplo
function myTest() {
$x = 5; // local scope
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
// using x outside the function will generate an error
echo "<p>Variable x outside function is: $x</p>";
?>
Você pode ter variáveis ??locais com o mesmo nome em diferentes funções, porque variáveis ??locais só são reconhecidas pela função em que são declarados.
PHP A palavra-chave global
A palavra-chave global é usado para acessar uma variável global dentro de uma função.
Para fazer isso, use a palavra-chave global antes as variáveis ??(dentro da função):
Exemplo
$x = 5;
$y = 10;
function myTest() {
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // outputs 15
?>
PHP também armazena todas as variáveis globais em um array chamado $ GLOBALS [ índice ]. O índice contém o nome da variável. Esta matriz também é acessível a partir de dentro de funções e pode ser usado para atualizar as variáveis globais diretamente.
O exemplo acima pode ser reescrito da seguinte forma:
Exemplo
$x = 5;
$y = 10;
function myTest() {
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y; // outputs 15
?>
PHP a palavra-chave estática
Normalmente, quando uma função é concluída / executado, todas as variáveis ??são excluídas. No entanto, às vezes queremos uma variável local não deve ser excluída. Precisamos dele por mais um trabalho.
Para fazer isso, use o estático palavra-chave quando você declarar a variável:
Exemplo
function myTest() {
static $x = 0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
Então, cada vez que a função é chamada, essa variável ainda terá as informações que continha a partir da última vez que a função foi chamada.
Nota: A variável ainda é local para a função.