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:
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 |
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 |