Der FoxPro-Kompatible Skriptinterpreter
🔎
Newsletter
Der FoxPro-Kompatible Skriptinterpreter

function

Definiert eine Funktion innerhalb eines Moduls oder innerhalb einer Klasse.

FUNCTIONPROCEDURE <FunctionName>[(<ParameterList>)]
  [PARAMETERSLPARAMETERS <ParameterList>]
  <...UserStatementList>
  [RETURN [<Expression>]]
ENDFUNCENDPROC

  1
  2
  3
  4
  5
HelloWorld()

FUNCTION HelloWorld
  ? "Hello World"
ENDFUNC

Hello World

Funktione mit Parametern (Moderne Schreibweise)

Bei der modernen Schreibweise wird die Signatur der Funktion in Klammern () hinter dem Funktionsnamen festgelegt. Bei dieser Schreibweise werden die Parameter als lokale Variablen im Stapelrahmen angelegt.

  1
  2
  3
  4
  5
AddFunc(12)

FUNCTION AddFunc(a, b)
  ? a + b
ENDFUNC

3

Eine alternative Schreibweise mit dem gleichen Verhalten sieht die Verwendung des Schlüsselwortes LPARAMETERS vor. LPARAMETERS muss die erste Anweisung in der Funktion sein.

  1
  2
  3
  4
  5
  6
AddFunc(12)

FUNCTION AddFunc
  LPARAMETERS a, b
  ? a + b
ENDFUNC

3

Funktionsaufruf mit globalen Parametern

Es ist möglich die Funktionsignatur so zu formulieren, dass an die Funktion übergebene Parameter anschließend nicht nur im lokalen Stapelrahmen sondern auch in allen Untergeordneten Stapelrahmen sichtbar sind, indem die Anweisung PARAMETERS verwendet wird.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
AddFunc(12)

FUNCTION AddFunc
  PARAMETERS _a, _b
  * AddAddFunc wird hier ohne Parameter aufgerufen.
  AddAddFunc()
ENDFUNC

FUNCTION AddAddFunc
  * _a und _b sind sichtbar, da sie beim Aufruf
  * der Funktion Add als globale Variablen angelegt wurden.
  ? _a + _b
ENDFUNC

3

Rückgabewert

Mit dem Schlüsselwort RETURN kann ein Wert an die aufrufende Funktion zurückgeliefert werden.

  1
  2
  3
  4
  5
? AddFunc(12)

FUNCTION AddFunc(a, b)
  RETURN a + b
ENDFUNC

3