Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme mit verschachtelten Funktionen

Einklappen

Neue Werbung 2019

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

  • #16
    Es gäbe auch noch anonyme Funktionen und [MAN]function_exists[/MAN]. GOTO und Schleifen zu benutzen wäre auch eine Möglichkeit. Oder Includes. 1000 Möglichkeiten...
    [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


    • #17
      Es gäbe auch noch anonyme Funktionen...
      Darüber haben wir doch die ganze Zeit gesprochen?

      anonyme Funktion = Lambda = PHP-Closure

      Closure = eineFunktion die den Variablenscope einer übergeordneten Funktion in sich einschließt (ob anonym oder nicht ist dabei unerheblich, PHP-Closure != Closure)

      function_exists – keine Ahnung wie Du das meinst?
      goto – ist kein Ersatz für eine Funktion, Sprungbefehl, ändert den Programmfluss, auf biegen und brechen wahrscheinlich machbar, aber extremsts häßlich
      includes – für temporäre wegwerf-dinger?
      anonyme Funfktionen/Lambdas - unter anderem genau dafür geschaffen

      1000 Möglichkeiten...
      Sehe ich nicht - zumindest keine vernünftigen.

      vg
      jack
      -

      Kommentar


      • #18
        function_exists – keine Ahnung wie Du das meinst?
        Es löst exakt das Problem mit dem fatal error.
        goto – ist kein Ersatz für eine Funktion,
        Wer sagt, dass die Aufgabe nur mit einer Funktion lösbar ist?
        Sprungbefehl, ändert den Programmfluss, auf biegen und brechen wahrscheinlich machbar, aber extremsts häßlich
        Klar ist das häßlich. Aber eine der wenigen Möglichkeiten, im aktuellen Scope zu arbeiten
        includes – für temporäre wegwerf-dinger?
        Und warum nicht?
        Darüber haben wir doch die ganze Zeit gesprochen?
        Haben wir das? http://de1.php.net/manual/en/functio...e-function.php

        Sehe ich nicht - zumindest keine vernünftigen.
        Was vor allem an der allgemeinen Fragestellung liegt. Möglicherweise ließe sich die Aufgabe sogar mit Schleifen, Rekursion und/oder break/switch lösen.
        [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


        • #19
          Ja, das ist wirklich gut

          Was vor allem an der allgemeinen Fragestellung liegt. Möglicherweise ließe sich die Aufgabe sogar mit Schleifen, Rekursion und/oder break/switch lösen.
          Also die Frage war doch

          Ich wollte gestern bei einer sehr umfangreichen Funktion, jene Teile, die sich 1 zu 1 wiederholen in eine verschachtelte Funktion schreiben.
          Meine Absicht war es nicht sein Lösungskonzept in Frage zu stellen – dazu sehe ich erst mal auch keinen Grund – sondern zu zeigen wie man es in PHP umsetzen könnte. Das Arbeiten mit anonymen Funktionen halte ich grundsätzlich für keine bad practice – ganz im Gegenteil und bevor ich hier zu Klassen, includes, goto etc. greife, dann ziehe ich ganz klar PHP-Closures vor. Denn genau dazu (unter anderem natürlich) sind sie ja schließlich da.

          vg
          jack
          -

          Kommentar


          • #20
            Also die Frage war doch
            Ein bisschen darf man aber auch zwischen den Zeilen lesen.

            PHP-Code:
            for ($i 0$i<; ++$i) {

              switch (
            $i) {

                
            // Pre-Actions

                
            case 1:
                  
            // viel Code;
                  
            break;

                case 
            2:
                  
            // noch mehr Code;
                  
            break;

                case 
            3:
                  
            // usw....
                  
            break;
              }


              switch (
            $i) {

                case 
            1:
                case 
            3:
                  
            // Code, der oft vorkommt...
                  
            break;

                case 
            2:
                  
            // Code, der auch oft vorkommt...
                  
            break;
              }

            }

            // Post-Actions
            // ... 
            [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


            • #21
              Nur der vollständigkeitshalber fürs Protokoll (ihr habt ja auch ohne mich viel Spaß :

              Ich habe eine externe Funktion geschrieben mit 16 Variablen, die ihr übergeben werden und sie gibt in einem Array 8 Variablen zurück.

              Dadurch ist meine Monsterfunktion von 680 Zeilen auf 260 Zeilen geschrumpft.
              (Ich hoffe ihr mögt Zahlen )

              Wenn ich weiter bin, schaue ich mir eure Diskusson nochmal an.

              Auf jeden Fall danke für die Idee mit dem Array als Rückgabewert!!!

              Kommentar


              • #22
                Und was macht diese Funktion? Den Sinn des Lebens berechnen? (260 Zeilen in einer Funktion sind um EINIGE zu viele.)

                Kommentar


                • #23
                  (260 Zeilen in einer Funktion sind um EINIGE zu viele.)
                  THIS.


                  Und was macht diese Funktion? Den Sinn des Lebens berechnen?
                  [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

                  Lädt...
                  X