Fernando queiroz escreveu:tenho usado bastante quando quero modificar o conteúdo do parâmetro passado, se não for alterar passo sem o @, não sabia que economizava memoria
Passando por referência está passando o endereço da mesma variável, o chamado pointer/ponteiro.
Desse jeito a função usa a mesma variável.
SEM referência, é criada uma cópia da variável com o mesmo conteúdo.
É que geralmente trabalhamos com variáveis de conteúdo pequeno, e nem importa muito economizar memória.
DifÃcil, mas não impossÃvel, poderia ser a geração de um SPED para o governo:
Imagine uma variável de 500MB, passando por uma função: vai ser 500MB da original, 500MB na cópia pra função, e 500MB pro retorno. 1.5GB total.
Por referência, fica nos 500MB.
Dependendo da memória do computador, a rotina poderia não funcionar, ou o Windows ficar sobrecarregado.
Acaba sendo interessante lembrar disso, porque temos todo tipo de situação.