Variable in Unterfunktion Global definieren

  • Hallo zusammen,

    wenn ich in einer Unterfunktion eine Variable mit Global definiere, dann ist sie wie ich das sehe nicht ausserhalb der Func verfügbar... nur unterhalb? D.h. sobald ich diese Func wieder verlasse (mit Return oder weil EndFunc erreicht ist) ist die Variable wieder "weg"!?

    Sehe ich das richtig??

    [autoit]

    func irgendwas()
    Global $variable
    ...
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von giochips (6. August 2009 um 15:57)

  • Hi,


    nein. Global heisst grundsätzlich überall verfügbar.

    Wird die Variable in einer Funktion definiert, steht Sie erst ab Aufruf der Funktion überall zur Verfügung.

    Deshalb sollte man Globale Variablen am Anfang eines Skriptes definieren


    Was Du meinst ist Local. Diese Variable steht nur innerhalb eines Kontext zur Verfügung:

    Bei Dir die Funktion.

    ;-))

    Stefan

  • Das hab ich auch so gesehen...

    Hab jetzt aber folgendes festgestellt:

    Ich hab in einer Funktion Variablen deklariert und diese auch nur in dieser Funktion benutzt. Dann hab ich einen Teil dieser Func, der sich mehrmals wiederholt in eine weitere Func gepackt, die ich dann aus der ersten Func aufrufe. Um nicht alle Variablen übergeben zu müssen, hab ich einfach die Variablen der 1. Func mit "Global" deklariert und wollte sie dann auch in der 2. Func benutzen. Erhalte dort aber die FM "...possibly used before declaration."

    [autoit]

    func ersteFunktion()
    Global $var_a
    Global $var_b
    ...
    zweiteFunktion()
    ...
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    Func ZweiteFunktion()
    ...
    $var_a=...
    $var_b=...
    ...
    EndFunc

    [/autoit]

    Hoffe ich konnte mich verständlich ausdrücken ;(

  • Hi,


    eher wohl ein Hinweis......................

    s. meine Antwort:


    Zitat

    Deshalb sollte man Globale Variablen am Anfang eines Skriptes definieren


    ;-))

    Stefan