Thank you.
>The 'local' refers to *scoping* of the variables that are passed into the function called not the 'By Value or By Reference' status. Those are two completely unrelated concepts.
>
>By default FoxPro uses PRIVATE variable scope and PARAMETERS uses Private scope as well. LPARAMETERS basically just makes the parameters LOCAL and scope to the function.
>
>So think of PARAMETERS and LPARAMETERS as the difference between:
>
>
>PRIVATE Parm1, Parm2
>
>
>and
>
>
>LOCAL Parm1, Parm2
>
>
>If you recall PRIVATE scope is hierarchical - visible down from where a variable is declared all the way into child functions/methods called. LOCAL scope is local to the function the variable is declared at. So LPARAMETERS limits the scope of the parameters - where they are visible - to the function they are declared in.
>
>It has nothing to do with passing by value or by reference.
>
>+++ Rick ---
>
>>Hi,
>>
>>Specifically I mean, as far as the title, what is the purpose of the "L" in LPARAMETERS. I understand it means "local" but the following example shows that it is not quite local:
>>
>>
>>LOCAL lVar1, lVar2
>>
>>STORE 1 TO lVar1, lVar2
>>
>>=TestFunct( lVar1, @lVar2 )
>>
>>? lVar1, lVar2
>>
>>FUNCTION TestFunct
>>LPARAMETERS lVar1, lVar2
>>
>>lVar2 = 122
>>
>>RETURN
>>
>>
>>Or does it mean that the "@" overrides the L in LPARAMETERS?
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham