Referenzen Problem

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

  • Referenzen Problem

    Hallo,
    ich habe ein kleines Problem mit Bäumen
    Für mein Template system möchte ich Variablen in einen tree einsortieren.

    Jetzt bekomme ich leichte schwierigkeiten mit referenzen.. (oder nicht vorhandenen referenzen)

    Nachdem der komplette Baum erzeugt wurde rufe ich die Rekursive Funktion CalculatePaths auf. Diese durchläuft den gesamten Tree und schreibt in die Variable $path eines jeden nodes den aktuellen "pfad" (also z.b. "topics.3.content").
    Wenn ich diesen Pfad in der Funktion direkt ausgebe funktioniert alles wunderbar.
    Nur wenn ich danach testweise den baum nochmal durchlaufe und ganz stur alle pfade ausgeben lasse sind die variablen leer.

    h schätze, dass ich irgendwo referenzen verwenden muss, wo ich keine habe. ich weiß nur nicht wo.

    Hier der etwas gekürzte code:
    PHP-Code:
    class cNode
    {
        [...]
        function 
    CalculatePaths$path="" )
        {
            
    $this->path $path;
            echo 
    $this->path " = " $this->data "<br/>"// Gib den path testweise aus. funktioniert.
            
            
    if( strcmp$path"" ) )
            {
                
    $path .= ".";
            }
            if( !empty( 
    $this->childs ) )
                foreach( 
    $this->childs as $child )
                {
                    
    $child->CalculatePaths$path.$child->name );
                }
            
        }

        function 
    DebugPrint() //nächster versuch auszugeben. $this->path ist leer !
        
    {
            echo 
    $this->path $this->data "<br/>";
            
            if( !empty( 
    $this->childs ) )
                foreach( 
    $this->childs as $child )
                {
                    
    $child->DebugPrint();
                }
        }
    }

    // so rufe ich den kram auf:
    $root = new cNode"root"TYPE_ROOT"" );

    // tree füllen ...

    $root->CalculatePaths();
    $root->DebugPrint(); 
    ich hoffe mir kann jemand helfen
    danke

    Dennis

    PS: Ich benutze PHP 4.3.4 (mit Zend Optimizer/Debugger trial) und Apache 1.3.x. Das ganze läuft unter WindowsXP Home.

  • #2
    Das Problem hat sich gelöst.
    foreach und viele andere array funktionen kopieren objekte automatisch. ich muss die objekte selbst in einer schleife durch gehen.
    Entschuldigt die störung

    Kommentar

    Lädt...
    X