Variáveis locais à funções

Variáveis locais de funções são variáveis que existem apenas dentro da função, não existindo na página que chamou a função. Dessa maneira, não só a memória é gerenciada de melhor maneira, como também as variáveis da função não interferem nas da página que a chamou, a vice-versa.

Variáveis locais são criadas com a palavra-chave var:

var valor = 3; //dentro de um bloco CFSCRIPTou
<CFSET VAR valor="3">

Ao criar UDFs, é comum (e recomendado), já declarar todas as variáveis que você irá utilizar no início da função, com a devida palavra-chave var. Aliás, declaração de variáveis locais só podem ser no início da função.

O problema é que muitas pessoas – inclusive eu – esquecem de declarar como variáveis locais as variáveis de loops!

Veja o código abaixo:


for(i=1; i LTE 13; i=i+1) {
thisDigit = mid(thisCNPJ, i, 1);
somaDigitoDois = somaDigitoDois + thisDigit * aMultipliers[i];
}

O código é parte da função CNPJvalidate() e cria uma nova variávei i. Se já existir uma variável i na página que a chamou, o valor desta será sobreposto pelo novo valor setado nesse loop. O correto seria, no início da função já declarar a variável i, mesmo que com qualquer valor.

Em tempo: as funções CNPJvalidate() e CPFvalidate() já foram atualizadas. 🙂

Ah, e não posso esquecer de dar parabéns ao nosso mais novo milionário!