- Offizieller Beitrag
Hi,
nachdem ich stundenlang ein Skript nach Fehlern durchsucht habe, fand ich die Ursache in einem NameSpace-Problem.
Ich ging bisher davon aus, dass eine als Global deklarierte Variable in Funktionen verändert werden kann und somit wiederum in anderen Funktionen mit dem neuen Wert zum Einsatz kommen kann.
Das folgende Bsp. zeigt aber, dass dem wohl nicht so ist. Habt ihr eine Erklärung dafür?
Opt('MustDeclareVars',1)
Global $ar, $i
Global $str = 'a,b,c,d,e,f,g,h'
_GetArray()
_GetCurrValue()
Func _GetArray()
$ar = StringSplit($str, ',')
For $i = 0 To UBound($ar) -1
If $ar[$i] = 'e' Then ExitLoop ; $i sollte also 5 sein, da Global
Next
EndFunc
Func _GetCurrValue() ; obwohl $i Global ist $i plötzlich ohne Wert!
MsgBox(0, 'Wert für $i = ' & $i, $ar[$i]) ; gezeigt wird '8' , also Wert für $i = 0 !!
EndFunc