O modificador static
Uma variável estática é visível num escopo local,
mas ela é inicializada apenas uma vez e seu valor não é perdido
quando a execução do script deixa esse escopo. Veja o seguinte
exemplo:
function
Teste() {
$a
= 0;
echo
$a;
$a++;
}
O último comando da função é inútil, pois assim que
for encerrada a execução da função a variável $a perde seu
valor. Já no exemplo seguinte, a cada chamada da função a variável
$a terá seu valor impresso e será incrementada:
function
Teste() {
static
$a = 0;
echo
$a;
$a++;
}
O modificador static é muito utilizado em funções
recursivas, já que o valor de algumas variáveis precisa ser
mantido. Ele funciona da seguinte forma: O valor das variáveis
declaradas como estáticas é mantido ao terminar a execução da
função. Na próxima execução da função, ao encontrar novamente
a declaração com static, o valor da variável é recuperado.
Em outras palavras, uma variável declarada como static
tem o mesmo “tempo de vida” que uma
variável global, porém sua visibilidade é restrita ao escopo local
em que foi declarada e só é recuperada após a declaração.
Exemplo:
function
Teste() {
echo
"$a";
static
$a = 0;
$a++;
}
O exemplo acima não produzirá saída alguma. Na
primeira execução da função, a impressão ocorre antes da
atribuição de um valor à função e, portanto o conteúdo de $a é
nulo (string vazia). Nas execuções seguintes da função Teste() a
impressão ocorre antes da recuperação do valor de $a
e, portanto nesse momento seu valor ainda é nulo. Para que a função
retorne algum valor o modificador static
deve ser utilizado
Nenhum comentário:
Postar um comentário