I tried the global within the if endif, this works, however outside the function the var $RSLT can now also be used which was not my intention.

 Code:
Dim    $RESULT
Dim    $SOMEVAR
$RESULT	    = 0
$RESULT	    = SetOption("DisableDebugging", "On")
$RESULT	    = SetOption("Ascii", "Off")
$RESULT	    = SetOption("CaseSensitivity", "On")
$RESULT	    = SetOption("Explicit", "On")
$RESULT	    = SetOption("HideCursor", "Off")
$RESULT	    = SetOption("NoMacrosInStrings", "On")
$RESULT	    = SetOption("NoVarsInStrings", "On")
$RESULT	    = SetOption("WrapAtEOL", "On")
If @ONWOW64
    $RESULT = SetOption("WOW64FileRedirection", "On")
    $RESULT = SetOption("WOW64AlternateRegView", "On")
Else
    $RESULT = SetOption("WOW64FileRedirection", "Off")
    $RESULT = SetOption("WOW64AlternateRegView", "Off")
EndIf
$SOMEVAR    = 5
Cls
? TETESTEN($SOMEVAR) + @CRLF
? "RSLT=" + $RSLT + @CRLF
? @CRLF
Quit @ERROR

Function TETESTEN($ARG1)
    If Not IsDeclared($RSLT)
	Global $RSLT
	$RSLT = 0
	? "RSLT=" + $RSLT + @CRLF
    EndIf
    $RSLT = 4
    $TETESTEN = $RSLT * $ARG1
EndFunction


Output:
RSLT=0
20
RSLT=4


Edited by Mart (2014-03-19 09:42 AM)
Edit Reason: Please use code tags when posting code.