Rekursive Objektorientierung?

Unicate

Erfahrenes Mitglied
Hallo!
Kann man in der Objektorientierung rekursiv programmieren?
ich hab hier mal mein Problem angeprangert.

Ich habe mehrere Gruppen, die selbst Gruppen erstellen können
diese unter umständen wieder welche erstellen können.
Eine Gruppe soll aber nur die Gruppen bearbeiten können, welche sie erstellt haben und die, die von ihren Gruppen erstellt worden sind usw.
Da sie somit nicht ihre eigene Gruppe verändern können, musste ich abfragen ob die Gruppe, Gruppe der Admins ist, damit der bzw. die sich selbst bearbeiten können.

Rekursiv kein Problem, nun funktioniert das aber hier nicht.
Sieht jemand nen Fehler oder hat jemand nen dollen Vorschlag, wie ich die Methode erneut Aufrufe?


PHP:
  function GroupEditRights($GroupToEdit)
  {
  
    /* Tabelle groups:
      id, name, rechte, created_by 
      
      $this->gid = GruppenId der Gruppe, die die Methode benutzt, also die des Benutzers der in der Gruppe ist, welche eine andere bearbeiten will*/

 // Die Gruppe holen, die diese Gruppe erstellt hat
    $sql = "SELECT
              created_by
            FROM
              ".PREFIX."groups
            WHERE
              id = '".$GroupToEdit."'";
    $result = mysql_query($sql) or die(mysql_error());
    $tmp = mysql_fetch_assoc($result);
    $CreatedBy = $tmp["created_by"];
    //Wenn geholte Gruppe == eigene Gruppe ist, dann return true
    if($CreatedBy == $this->gid)
    {
      return true;
    }
    //Da Admin allerhöchste gruppe ist, kann er alles editieren
    if($this->gid != '1')
    {
      
      if($CreatedBy == '1')
      {
        return false;
      }
    }
    //$this->GroupEditRights($CreatedBy) funktioniert nicht!
    $RightsRekursiv = new Rights();
    $RightsRekursiv->GroupEditRights($CreatedBy);
  }

Ich möchte das ganze in PHP4 lösen können
 
Du kannst Objekte in sich selbst Objekte der eigenen Klasse erstellen lassen, das ist kein Problem.
Hab das vor einer Weile genutzt um den Verzeichnisbaum abzubilden.
Hier der Code dazu (der PHP4-Code ist am Ende des ersten Posts zu finden).

Also in der Theorie klappt das alles.
Um Deinen Code nach Fehlern zu durchsuchen ist es mir jetzt grad was zu spaet. Ich schau morgen nochmal rein. ;)
 
Zurück