Escopo de Variáveis PHP
Escopo de Variáveis PHP
No PHP, as variáveis podem ser declaradas em qualquer lugar do script.
O escopo de uma variável é a parte do script onde a variável pode ser referenciada/usada.
O PHP tem três escopos de variáveis diferentes:
- local
- global
- estático
Escopo Global e Local
Uma variável declarada fora de uma função tem um GLOBAL SCOPE e só pode ser acessada fora de uma função:
Exemplo
Variável com escopo global:
<?php
$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 LOCAL SCOPE e só pode ser acessada dentro dessa função:
Exemplo
Variável com escopo local:
<?php
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 funções diferentes, pois as variáveis locais só são reconhecidas pela função na qual são declaradas.
PHP A palavra-chave global
A global
palavra-chave é usada para acessar uma variável global de dentro de uma função.
Para fazer isso, use a palavra- global
chave antes das variáveis (dentro da função):
Exemplo
<?php
$x = 5;
$y = 10;
function myTest()
{
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // outputs 15
?>
O PHP também armazena todas as variáveis globais em um array chamado
. O contém o nome da variável. Essa matriz também é acessível a partir de funções e pode ser usada para atualizar variáveis globais diretamente.$GLOBALS[index]
index
O exemplo acima pode ser reescrito assim:
Exemplo
<?php
$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/executada, todas as suas variáveis são excluídas. No entanto, às vezes queremos que uma variável local NÃO seja excluída. Precisamos dele para mais um trabalho.
Para fazer isso, use a palavra- static
chave ao declarar a variável pela primeira vez:
Exemplo
<?php
function myTest()
{
static $x = 0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
Então, cada vez que a função for chamada, essa variável ainda terá as informações contidas na última vez que a função foi chamada.
Nota: A variável ainda é local para a função.