Robert: funktion test ind funktion test

Hallo,

Ich habe eine Funktion mit PHP gemacht in welcher unter Umständen auch die Funktion selbst aufgerufen wird. Das ganze um eine Hierarchie zu erstellen von Daten in einer Datenbank.

Ist es schlecht sowas zu machen in PHP.

Wenn nein:
Und gilt das bei allen Sprachen, auch Compiler-Sprachen?

Wenn ja:
Wie sonst würdet ihr eine Hierarchie von Daten erstellen, angenommen die Daten wären so abgespeichert:

id 1
     id 1-1
            id 1-1-1
     id 1-2
id 2
     id 2-1
            id 2-1-1

Vielen Dank
Gruß Robert

  1. Hi,

    Ich habe eine Funktion mit PHP gemacht in welcher unter Umständen auch die Funktion selbst aufgerufen wird.

    das nennt sich übrigens Rekursion.

    Ist es schlecht sowas zu machen in PHP.

    War das jetzt eine Feststellung oder eine Frage? PHP ist zu Rekursion in der Lage, falls es eine Frage war.

    Und gilt das bei allen Sprachen, auch Compiler-Sprachen?

    Es gilt _nicht_ bei allen Sprachen, und es hat nichts damit zu tun, ob die Sprache kompiliert oder interpretiert wird. Im großen und ganzen muss sie in der Lage sein, Scopes zu bilden.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo,

      das nennt sich übrigens Rekursion.

      Danke

      Ist es schlecht sowas zu machen in PHP.

      ?*
      War eine Frage.

      Vielen Dank Robert

      1. Hallo Robert,

        das nennt sich übrigens Rekursion.

        Ist es schlecht sowas zu machen in PHP.

        Diese Frage kann nicht einfach mit Ja oder mit Nein beantwortet werden. Eine sehr gute und doch knappe Abhandlung dieser Thematik findest Du in Robert Sedgewicks Standardwerk "Algorithmen" im Kapitel "Rekursion".

        Lesetipps im Internet:
        http://java.sun.com/docs/books/performance/1st_edition/html/JPAlgorithms.fm.html#20800
        http://www-106.ibm.com/developerworks/xml/library/x-xslrecur/?t=gr,lnxw914=XSLrecusionTips
        http://www.educeth.ch/informatik/leitprog/rekursion/docs/rekursion.pdf

        Du kannst mit rekursiver Programmierung manche Aufgaben elegant und effizient lösen, andere ineffizient, siehe Frage 39 in http://home.apu.edu/~jcox/cs520/quizzes/quiz3.htm. Eine Auseinandersetzung über Eleganz bei der ineffizienten rekursiven Lösung eines Problems kann man in http://www.chemieonline.de/forum/archive/index.php/t-21310.html verfolgen. *g*

        Du kannst Programmierfehler begehen, z.B. rekursive Endlosschleife, ein in verdeckter Form durchaus häufiger Programmierfehler in komplizierteren rekursiven Programmen. Falls Du eine rekursive Endlosschleife bei einer Funktion mit Parameterübergabe baust, kriegst Du wenigstens den Abbruch in Form eines Stack-Overflows. :-)

        Du kannst Rekursion nur einsetzen, wenn das System dies unterstützt. Bei PHP ist das der Fall. Es gibt auch Systeme, die Rekursion nicht erlauben (mir fällt gerade kein Beispiel ein). Es hängt vom Problem selbst ab, ob es sinnvoll ist, dieses Problem rekursiv zu lösen.

        Ich fasse zusammen: Rekursion ist nicht prinzipiell böse[tm], sie ist aber auch kein Allheilmittel.

        ?*
        War eine Frage.

        Cheatah hat Dir auf seine Weise _den_ Tipp gegeben, wonach Du suchen kannst. Als Anleitung zum Selbermachen. Im Web findest Du viel mehr über Rekursion als meine paar Hinweise.

        Freundliche Grüsse,

        Vinzenz