PHPAnfänger: Object Parsen - PHP

Guten Mittag,

ich habe gerade ein verschachteltes Objekt vom Typ stdClass, dass ich parsen muss / möchte. Beispielsweise so eins:

  
stdClass #1 =>  
   stdClass #2 =>  
      3  
      6  
   stdClass #3 =>  
      19  

und so weiter.

Ich habe dafür diese Funktion.

class Convert {  
	public function Convert($Obj) {  
	     $Obj = (array)$Obj;  
	  
          foreach($Obj as $Key => $Value){  
               if(is_object($Value) and get_class($Value)==='stdClass') {  
                    echo "Müssen noch konvertiert werden: <br>";  
                    var_dump($Key);  
                    echo "<br>";  
                    var_dump($Value);  
                    echo "<br>";  
               	$Obj[$Key] = $this->Convert($Value);  
               }  
               echo $Key . " und " . $Value . " müssen NICHT mehr konvertiert werden.<br>";  
          }  
          return $Obj;  
	}  
}

Funktioniert ja auch überall ganz gut, bis auf diesen Fall:

In einem Objekt gibt es mehrere gleiche Unterobjekte, so dass diese die Keys [0], [1], [2] etc. zugewiesen bekommen. Also:

$Array[0] = stdClass1;
$Array[1] = stdClass2;
$Array[2] = stdClass3;

Und so weiter.

Hier funktioniert meine Funktion nicht und gibt die Fehlermeldung aus, dass das Objekt vom Typ stdClass nicht mit echo angezeigt werden kann. Gemeint ist die Zeile echo $Key . " und " . $Value . " müssen NICHT mehr konvertiert werden.<br>";. Hier soll $Value angebtlich noch ein Objekt vom Typ stdClass sein. Wie kann das sein? Ich habe doch vorher in der if Anweisung überprüft, ob das der Fall ist und wenn nein die Funktion rekursiv nochmal mit $Value aufgerufen?

Vielen Dank!

  1. $this->Convert($Value); lässt ja $Value unabhängig vom return wie es ist. Und so, wie es da steht wird

    echo $Key . " und " . $Value . " müssen NICHT mehr konvertiert werden.<br>";

    immer ausgeführt. Unabhängig ob die if() anspringt oder nicht. Ein "else" würde helfen, oder ein continue; im if-Block.

    Hilft das?

    Cheers,
    Baba