Variáveis locais à funções
Publicado; 13/02/2005 Arquivado em: ColdFusion Comentários desativados em Variáveis locais à funçõesVariá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 CFSCRIPT
ou
<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!