Ankündigung

Einklappen
Keine Ankündigung bisher.

Funktionsparameter direkt/gesplittet weitergeben

Einklappen

Neue Werbung 2019

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

  • Funktionsparameter direkt/gesplittet weitergeben

    Hallo,

    kann man Funktionsparameter direkt/gesplittet weitergeben?

    Beispiel:
    PHP-Code:
    function f1 () {
        
    f2(implode(",",func_get_args())); // frei erfundene Möglichkeit
    }

    function 
    f2 ($arg1,$arg2) {
        
    // $arg1 = 'A'
        // $arg2 = 'B'
    }
    f1('A','B'); 
    Gruß

  • #2
    Kannst Du nicht einfach beschreiben, was Du umsetzen willst? Das ist schon wieder so eine halb-informative Frage. Mit dem vorliegenden Beispiel lässt sich kein sinnvoller Plan darin erkennen
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Na wie es da oben steht, ein Array an eine Funktion übergeben, nur dass das Array bei der Übergabe gesplittet wird und die Elemente als einzelne Argumente übergeben wird. Da steht ganz genau, was PHP umsetzen soll.

      PHP-Code:
      Aus:
      function(array(
      "A","B"));

      Wird:
      function(
      "A","B"); 
      Es geht mir rein um die Möglichkeiten von PHP bzw. die Suche von vordefinierten PHP-Funktionen, nicht wie ich was Programmieren kann.

      Beispiel aus Java, Flash etc. da gibts sowas:
      Code:
      apply(java.lang.Object[] args)
      
      Wenn PHP sowas wie apply unterstützt, würde es bedeuten:
      $object->method.apply($object2,$array);
      
      bzw. daraus entsteht, sozusagen:
      $object2->method($array[0],$array[1],...)

      Kommentar


      • #4
        Nochmal: Der Hintergrund zu einer Frage ist auch wichtig. Erst dann kann man ordentlich antworten, machmal auch mit einer ALternativlösung, an die Du vielleicht gar nicht gedacht hast. Wir sind hier kein Script-Service, wo man eine Frage reinwirft und Code herausbekommt.
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar


        • #5
          Das heißt eine Funktion wie apply aus Java gibt es in PHP nicht?
          Dachte eigentlich nicht, dass ich Code erfrage, sondern eher Funktionen. Funktionen die PHP selbst mit sich bringt.

          Kommentar


          • #6
            Du willst variable Parameter an eine Funktion weitergeben oder was? Warum fragst Du dann nicht das, statt irgendwelche kruden Pläne mit implode zu beschreiben und von gesplitteten Parametern zu reden? Das ist meine Kritik an der Frage! Genau wie ander letzten!

            [MAN]call_user_func[/MAN]
            [MAN]call_user_func_array[/MAN]
            .
            [COLOR="#F5F5FF"]--[/COLOR]
            [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
            [COLOR="#F5F5FF"]
            --[/COLOR]

            Kommentar


            • #7
              Das steht doch alles in der Frage. Oder war das Problem, dass ich nicht schrieb, 'Weitergabe an eine Funktion'?

              Das Code-Beispiel zeigt doch nur nochmal, was passieren soll, der Verweis auf die frei erfundene Möglichkeit, beschreibt den Umfang der Parameter (func_get_args; alle), Zerlegen des Array (implode), die Übergabe der einzelnen Elemente an eine Funktion ($arg1,$arg2).

              Bin es gewohnt, diese Frageart zu lesen: Die Frage bezieht sich auf die entsprechende Stelle im Beispielcode. Kann natürlich anfangs abstrakt wirken.

              Was solls, danke.

              Kommentar


              • #8
                Zerlegen des Array (implode)
                Schon in seiner Grundaussage falsch. Bitte nachlesen.
                Kann natürlich anfangs abstrakt wirken.
                Leider eben nicht, sondern sehr speziell. Nach langjähriger Forenerfahrung, werden die Leute das Ziel in Frage stellen, weil sich der Fragende in etwas verrant hat. Deshalb immer allgemein fragen (natürlich schon zu einem spezifischen Problem).
                [COLOR="#F5F5FF"]--[/COLOR]
                [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                [COLOR="#F5F5FF"]
                --[/COLOR]

                Kommentar


                • #9
                  Zerlegen, sollte wohl dann doch eher das Auflösen eines Array bzw. das Verbinden zu etwas anderem bedeuten.
                  implode(",",$array("A","B")) // "A,B": f2(A,B);

                  Da ich nach der entsprechenden Funktion gesucht habe, konnte ich es natürlich nicht gleich als call_user_func_array darstellen.

                  Kommentar


                  • #10
                    Ja, das ist ja alles klar, aber es erwartet ja niemand, dass hier Pseudocode verwendet wird. Es reicht Fragen mit eigenen Worten, aber präzise, zu beschreiben.
                    [COLOR="#F5F5FF"]--[/COLOR]
                    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                    [COLOR="#F5F5FF"]
                    --[/COLOR]

                    Kommentar


                    • #11
                      Zitat von nikosch Beitrag anzeigen
                      Kannst Du nicht einfach beschreiben, was Du umsetzen willst?
                      Kann ich nur unterschreiben.

                      Bitte gewöhne dir an, dein wirkliches Problem, das du lösen willst, zu beschreiben - und nicht immer mit irgendwelchem komischen Pseudocode anzukommen, aus dem wir dann hellseherisch ablesen sollen, was du willst.
                      [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                      Kommentar

                      Lädt...
                      X