PRIVATE Variable
PRIVATE Variablen werden dynamisch erzeugt und "entsorgt".
Eine PRIVATE Variable kann auf drei verschiedenen Wegen erzeugt werden:
- durch die (ausführbare!) Anweisung "PRIVATE cVar" - durch eine Wertzuweisung "cVar := 'Heute'" - durch die Anweisung PARAMETER in einer Funktion (die übergebenen Werte werden in die vorgegebenen Variablen übernommen)
In den beiden ersten Fällen wird eine Variable mit dem Namen cVar erzeugt.
FUNCTION TueIrgendEtwas LOCAL nI PRIVATE dHeute PARAMETER nEins, nZwei, lVier
Innerhalb dieser Funktion sind damit vier PRIVATE Variable definiert:
- dHeute - nEins - nZwei - lVier
Eine PRIVATE Variable ist an ihre Position im Call-Stack gebunden.
FUNCTION Main() ProcA() ProcB() RETURN(.T.) FUNCTION ProcA() ProcC() ... RETURN(.T.) FUNCTION ProcB() ProcC() ... RETURN(.T.) FUNCTION ProcC() cVar := "Hugo" RETURN(.T.)
cVar wird das erste Mal in folgender Aufruf-Konstellation (= Call-Stack) angesprochen:
Main +---> ProcA : +---> ProcC
cVar wird in ProcC erzeugt und ist in dem Moment, in dem ProcC durch die RETURN-Anweisung verlassen wird, nicht mehr "adressierbar".
Wenn später über ProcB ein weiterer Aufruf von ProcC erfolgt, wird eine neue (!) PRIVATE Variable erzeugt:
Main +---> ProcB : +---> ProcC
Auch für diese Variable endet ihre Lebenszeit, wenn ProcC mit RETURN verlassen wird.