Tim: Variable aus Function

Tag!

Vielleicht 'ne blöde Frage:
Wie übergebe ich eine Variable von einer function an das "Hauptprogramm"? Umgekehrt mach ich das ja einfach so: function_sowieso($variable); In der function soll die $variable aber geändert werden, und das "Hauptprogramm" soll es auch mitbekommen...

Danke!
Tim

  1. Moin,
    indem du folgendes schreibst:

    $meine_var = function x();

    und in die Funktion:

    function x(){
    $irgendwas = "huhu";
    return $irgendwas;
    }

    Damit gibst du die Variable $irgendwas an die Variable $meine_var zurück. Wäre $irgendwas in diesem Fall ein String z.B. "huhu" und du würdest auf deiner Seite dann echo $meine_var; aufrufen, würde jetzt ein "huhu" ausgegeben.

    Gruß
    Ralf

    1. Hallo!

      $meine_var = function x();

      Hier wird eine Fehlermeldung ausgegeben! (Parse error)

      Tim

      1. $meine_var = function x();
        Hier wird eine Fehlermeldung ausgegeben! (Parse error)

        Hmm, das funktioniert aber so. Und der Code war auch richtig. Da hast Du dann einen kleinen Flüchtigkeitsfehler drin.
        Poste halt mal Deinen kompletten Code :-)

        1. Nochmal Hallo!

          Poste halt mal Deinen kompletten Code :-)

          <?php
          function mein_name()
             { $mein_name = "Tim";
               return $mein_name;
             }

          $name = function mein_name();
          echo "Mein Name ist " . $name;
          ?>

          Ausgabe:
          Parse error: parse error in c:\html\test\name.php on line 7

          Grüße: $mein_name

          1. Hi,

            $name = function mein_name();

            das function Keyword brauchst du nur bei der definition deiner Funktion.
            daher sollte $name = mein_name(); funktionieren.

            ausserdem gibt es noch die moeglichkeit mit referenzen zu arbeiten:

            function foo ( &$bla)
            {
                $bla = 'huhu';
            }

            $bla='';
            foo($bla);
            echo $bla;

            Jan
            --

            1. ...daher sollte $name = mein_name(); funktionieren.

              Juhuuuuu, So geht's!
              Danke! Tim

      2. Hallo Tim,
        Sorry. War meine Schusseligkeit. Wie schon gesagt wurde, muß es natürlich
        ohne das Schlüsselwort function geschrieben werden.

        Grüße
        Ralf

  2. Vielleicht 'ne blöde Frage:
    Wie übergebe ich eine Variable von einer function an das "Hauptprogramm"? Umgekehrt mach ich das ja einfach so: function_sowieso($variable); In der function soll die $variable aber geändert werden, und das "Hauptprogramm" soll es auch mitbekommen...

    Zum Beispiel mit

    function funktion($innen)
       {
        $innen+=1; // einen dazuzählen
        return $innen;
       };

    in der Funktion. Die Funktion muß dann so

    $variable=funktion($variable);

    aufgerufen werden. PHP hat übrigens die etwas außergewöhnliche Eigenschaft, Variablen nicht in den Gültigkeitsbereich von Funktionen zu übernehmen; $variable von oben existiert also nicht in der Funktion, nur $innen.

    Alternativ kannst Du auch einen Zeiger auf die Variable selber übergeben, so daß die Variable $variable auch innerhalb der Funktion existiert:

    function funktion(&$innen)
       {
        $innen+=1;
       }

    Folgendes Programm

    $i=1;
      funktion($i);
      echo $i;

    würde dann 2 ausgeben.

    Last but not least kannst Du auch Variablen allgemein in eine Funktion reinholen, dazu dient "global":

    function funktion()
       { global $i;
        $i+=1; // einen dazuzählen
       }

    Diese Funktion hätte denselben Effekt wie im zweiten Beispiel oben.

    Gruß,
      soenk.e

    PS: RTFM.