hans_69: einer Funktion eine Funktions als Parameter übergeben

Hallo alle zusammen,

kann ich eine Funktion einer anderen Funktion als Parameter übergeben?

vielen Dank
Hans

  1. Hallo Hans,

    kann ich eine Funktion einer anderen Funktion als Parameter übergeben?

    ich habe nicht ganz verstanden, was Du damit meinst. Ich sehe zwei unterschiedliche Anwendungsfälle:

    a) Du kannst einer Funktion statt einer Variablen auch den Rückgabewert einer
       Funktion übergeben.

    b) es gibt Funktionen, die einen Funktionsnamen als Parameter entgegennehmen.
       In selbstgeschriebenen Funktionen könntest Du eine solche Funktion mittels
       call_user_func() ausführen.

    Beispiele für b) wäre zum Beispiel die Funktion usort().

    Was ist genau Deine Fragestellung?

    Freundliche Grüße

    Vinzenz

    1. Also ich habe eine Funktion z.B. foo:

      foo()
      {
      echo "Hallo hier bin ich!";
      }

      dann gibt es aber noch eine andere Funktion, die foo() verwenden will:

      bar() //hier will ich nun irgendwie die Funktion foo() übergeben
      {
       //und hier müsste ich sie ausführen
      echo "Und wie gehts jetzt weiter?";
      }
      Vielen Dank für die Hilfe
      Hans

      1. Grüße,

        foo()
        {
        return "Hallo hier bin ich!";

        }

        bar() //hier will ich nun irgendwie die Funktion foo() übergeben
        {

        echo foo(); <-schreibt den return-wert der foo()

        echo "Und wie gehts jetzt weiter?";
        }

        MFG
        bleicher

        --
        __________________________-
        Die versprechen ernsthaft werbefreien hosting?
      2. Hallo,

        foo()
        {
        echo "Hallo hier bin ich!";
        }

        dann gibt es aber noch eine andere Funktion, die foo() verwenden will:

        Es ist nicht nötig, Funktionen zu übergeben. Funktionen kannst Du einfach aufrufen.

        bar() //hier will ich nun irgendwie die Funktion foo() übergeben
        {
        //und hier müsste ich sie ausführen

        // Dann tu's doch:
            foo();

        echo "Und wie gehts jetzt weiter?";
        }

        Freundliche Grüße

        Vinzenz

        1. Es ist nicht nötig, Funktionen zu übergeben. Funktionen kannst Du einfach aufrufen.

          Und wenn mir beim Schreiben einer Funktion nicht klar ist, welche Funktion überhaupt verwendet werden soll? Du hast mit der Sortierfunktion doch schon selbst das beste Beispiel geliefert - wenn die allgemein sortieren soll (das Vergleichskriterium also variabel sein soll), kann man ja keine Funktion fest verdrahten.

          bar() //hier will ich nun irgendwie die Funktion foo() übergeben
          {
          //und hier müsste ich sie ausführen
              // Dann tu's doch:
              foo();
          echo "Und wie gehts jetzt weiter?";
          }

          Hier ist die Javascript-Variante von dem, was er möchte:

          function bar(foo){  
           foo();}
          

          Da geht's ganz leicht und intuitiv.

          --
          Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.
          Self-Code: sh:( ch:? rl:( br:> n4:( ie:{ mo:) va:) de:> zu:} fl:| ss:| ls:~ js:|
      3. Dann hast du doch schon mit call_user_func den richtigen Tipp von Vinzen bekommen. Du übergibst allerdings nicht die Funktion selbst, sondern nur den Namen.

        --
        Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.
        Self-Code: sh:( ch:? rl:( br:> n4:( ie:{ mo:) va:) de:> zu:} fl:| ss:| ls:~ js:|