Phil: rekursive funktion ohne Wiederholungen

Beitrag lesen

In einem objekt wird eine Funktion ausgeführt welche
sich rekursiv aufruft um eine Baumstruktur zu erzeugen.

Wie stellt man es an, das ein Befehl nur einmal am
Anfang und ende ausgeführt wird?

In dem Fall um am Anfang und Ende einmalig ein
<ul> bzw </ul> anzuhängen ohne durch die Rekursion
Wiederholungen zu generieren?

public function buildTree()  
{

Anfang: $Baum = '<ul>'

foreach-Schleife $Baum .= ......
(ruft  buildTree() rekursiv  auf)

Ende:   $Baum .= '</ul>'
}