Varianble aus einer Funktion außerhalb benutzen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Varianble aus einer Funktion außerhalb benutzen

    Hallo!

    Ich habe ein Funktion, in der ich eine Variable habe. Nun soll diese auch außerhalb der Funktion bekannt sein, wie stelle ich das an???

    PHP-Code:

    function irgendwas($a){
         ...
    code...
         
    $flag 1;
    }

    echo 
    $flag;

    ...
    code...


    // Aufruf der Funktion
    irgendwas(xy); 
    Das Problem: echo $flag bleibt immer leer, ich brauche den Wert von $flag außerhalb d. Funktion. Auch wenn ich $flag nach dem Funktionsaufruf haben möchte (das wäre aber eh zu spät), bleibt $flag stets leer.

    Merci, Joel

  • #2
    Entweder du gibst $flag als return der Fkt zurück oder du definierst die $flag als global. Damit wäre sie auch ausserhalb der Fkt gültig.

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      nachzulesen:
      http://de3.php.net/manual/en/functio...ing-values.php
      http://de3.php.net/manual/en/languag...bles.scope.php

      Kommentar


      • #4
        Original geschrieben von jahlives
        oder du definierst die $flag als global




        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          geschrieben von Abraxax
          Habe ja nicht behauptet, dass dies guter Stil sei. Besser ist es aufg alle Fälle die Var als return zurückzugeben.

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            OffTopic:
            ach, da gibt's ja noch die referenzübergabe...

            Kommentar


            • #7
              Ja, habe ich ja schon alles probiert - funzt nicht!

              GLOBAL $flag entweder VOR der Funktion, auch innerhalb, klappt beides nicht. Auch mit return haut das nich hin. Glaubt ihr nich? - iss aber so
              Ich glaube, das hat damit zu tun, daß ich die Fkt erst weiter unten im Script aufrufe, und ich aber schon vorher wissen will, welchen Wert sie hat. Also hab ich sie mir ganz am Ende d. Scripts ausgeben lassen, wenn der ganze Zinnober schon vorbei ist, aber selbst da bleibt sie leer.
              Zuletzt geändert von newby_12; 05.10.2005, 23:12.

              Kommentar


              • #8
                Dann machst du wohl noch irgendwas falsch. (*)

                Glaubst du nich'? - Is' aber so.



                (*) zum Beispiel mangelt es immer noch an einer nachvollziehbaren Problembeschreibung.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  ach ja? na dann zeig mal deinen code.

                  Kommentar


                  • #10
                    Beispiel:
                    PHP-Code:
                    <?php

                    GLOBAL $flag;

                    function 
                    add($a,$b){
                        GLOBAL 
                    $flag;
                        
                    $c $a $b;
                        return 
                    $c;
                        
                    $flag 1;
                    }

                    echo 
                    "flag VOR Fkt= ".$flag."<br>\n";

                    echo
                    "add = ".add(3,4)."<br>\n";

                    echo 
                    "flag NACH Fkt= ".$flag."<br>\n";

                    ?>

                    Kommentar


                    • #11
                      zitat aus dem ersten link der ersten antwort, erster absatz:
                      This causes the function to end its execution immediately and pass control back to the line from which it was called.
                      warum glaubst du denn dann, dass
                      PHP-Code:
                      $flag 1
                      ausgeführt wird?

                      Kommentar


                      • #12
                        Daß return und global nicht funzen, habt ihr ja jetzt selbst gesehen (obwohl von euch empfohlen, also hätte es ja funzen können und sollen), also wie komme ich an mein $flag ran????????????????? btw: der Code wird au falle Fälle ausgeführt, auch wenn $flag nicht unmittelbarer Bestandteil der Fkt add ist.
                        Zuletzt geändert von newby_12; 05.10.2005, 23:36.

                        Kommentar


                        • #13
                          Daß return und global nicht funzen, habt ihr ja jetzt selbst gesehen
                          nein, wir haben lediglich gesehen, dass falsch aufgebaute anwendung nicht funktioniert (was nun wirklich keinen überrascht)

                          lies dir meine letzte message noch mal in ruhe durch. verstehst du das zitat aus dem manual?

                          Kommentar


                          • #14
                            Der Code wird au falle Fälle ausgeführt, auch wenn $flag nicht unmittelbarer Bestandteil der Fkt add ist.

                            Kommentar


                            • #15
                              Hm, mal so gefragt: daß ich $flag setzen will, ist mitllerweile klar, aber wie würdet ihr denn die Fkt dann aufbauen, so daß man rankommt an $flag???

                              Kommentar

                              Lädt...
                              X