globale Variable in Funktion setzen

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

  • globale Variable in Funktion setzen

    Hallo allerseits.

    Über folgenden Sachverhalt sagt mein PHP-Handbuch leider nichts.

    Ich habe eine Funktion in der ich per "global" auf eine Variable von außerhalb zugreife. Nun möchte ich die globale Variable aber auch verändert. Doch wenn ich die dann in der Funktion neu setze, passiert nichts.
    Wird eine globale Variable in einer Funktion denn nur gelesen und dann funktionsintern benutzt?

    Und was passiert eigentlich, wenn ich zwei returns in einer Funktion benutze?
    return $var1;
    return $var2;

    Wenn ich die Funktion aufrufe mit:
    $result = funktion();

    Wird dann aus $result ein Array?

    Oder einfach gefragt, wie kann ich das Ergebnis einer Funktion zwei unterschiedlichen Variablen zuweisen?

    Dank & Grüße,
    Andi

  • #2
    Wird eine globale Variable in einer Funktion denn nur gelesen und dann funktionsintern benutzt?
    Was sagt denn dein Testcode? (und wie sieht er aus?)

    Und was passiert eigentlich, wenn ich zwei returns in einer Funktion benutze?
    Was sagt denn dein Testcode?

    Wenn ich die Funktion aufrufe mit:
    $result = funktion();

    Wird dann aus $result ein Array?
    wenn du die funktion entsprechend definierst, dann natürlich. PHP macht nur das, was du Programmierst.

    Oder einfach gefragt, wie kann ich dem Ergebnis einer Funktion zwei unterschiedlichen Variablen zuweisen?
    gar nicht!

    Kommentar


    • #3
      Das war mal wieder sehr aufschlussreich.
      Schon gut, ich probiers aus - sorry, dass ich gefragt habe.

      Zu Deiner Frage, was der Testcode dazu meint und wie er aussieht...
      PHP-Code:
      $ext_var "";

      function 
      machwas(){

          global 
      $ext_var;
          
          
      $var1 "hier passiert was";
          
      $ext_var "hier passiert was anderes";
          
          return 
      $var1;

      }

      $var1 machwas();

      # $ext_var bleibt leer! 
      In $var1 habe ich das Ergebnis der Funktion, $ext_var ist unverändert.

      Gruß,
      Andi

      Kommentar


      • #4
        lass das global weg und übergib ne referenz:
        PHP-Code:
        <?php
        $ext_var 
        "";

        function 
        machwas(&$ext_var){

            
        $var1 "hier passiert was";
            
        $ext_var "hier passiert was anderes";
            return 
        $var1;
        }
        $var1 machwas($ext_var);
        echo 
        $ext_var;
        ?>
        Kissolino.com

        Kommentar


        • #5
          Welche PHP Version?

          Bei mir funktioniert Dein Beispiel einwandfrei ... !
          carpe noctem

          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

          Kommentar


          • #6
            @goth: php 4.4.2

            @wurzel: Na da fehlt ja was. Was passiert denn mit $ext_var in der Funktion, die wird ja nicht zurück gegeben und nur intern benutzt.

            OK, ich glaub ich muss mir die Daten doch als Array zurück geben lassen und danach den einzelnen Variablen zuweisen.

            Grüße,
            Andi

            Kommentar


            • #7
              Original geschrieben von andik2000
              @wurzel: Na da fehlt ja was. Was passiert denn mit $ext_var in der Funktion, die wird ja nicht zurück gegeben und nur intern benutzt.
              wie meinen?
              Kissolino.com

              Kommentar


              • #8
                Original geschrieben von andik2000
                @wurzel: Na da fehlt ja was. Was passiert denn mit $ext_var in der Funktion, die wird ja nicht zurück gegeben und nur intern benutzt.
                Deshalb sagte Wurzel ja, per Referenz übergeben ...!
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar

                Lädt...
                X