Variáveis estáticas funcionam basicamente como as variáveis locais, mas mantêm seu valor através da execução. Variáveis estáticas devem ser declaradas explicitamente no código com o identificador STATIC.
O escopo das variáveis estáticas é limitado ao programa a qual foi declarada, independente do ponto onde a variável foi declarada.
Exemplo
Os dois trechos de código abaixo tem o mesmo resultado:
Declaração no corpo da função
user function vStatic() Pai() return static function Pai() static nVar := 10 // Declaração no corpo da função conOut("Pai") conOut(nVar) Filha() return(.T.) static function Filha() conOut("Filha") conOut(nVar) return
Declaração fora do escopo de função
static nVar := 10 // Declaração fora do escopo de função user function vStatic() Pai() return static function Pai() conOut("Pai") conOut(nVar) Filha() return(.T.) static function Filha() conOut("Filha") conOut(nVar) return
Visão Geral
Import HTML Content
Conteúdo das Ferramentas