动态发现/处理PHP对象

Is it possible to dynamically discover the properties of a PHP object? I have an object I want to strip and return it as a fully filled stdClass object, therefore I need to get rid of some sublevel - internal - objecttypes used in the input.

My guess is I need it to be recursive, since properties of objects in the source-object can contain objects, and so on.

Any suggestions, I'm kinda stuck? I've tried fiddling with the reflection-class, get_object_vars and casting the object to an array. All without any success to be honest..

tested and this seems to work:

<?php

class myobj {private $privatevar = 'private'; public $hello = 'hellooo';}

$obj = (object)array('one' => 1, 'two' => (object)array('sub' => (object)(array('three' => 3, 'obj' => new myobj))));

var_dump($obj);

echo "
", json_encode($obj), "
";

$recursive_public_vars = json_decode(json_encode($obj));

var_dump($recursive_public_vars);

You can walk through an object's (public) properties using foreach:

foreach ($object as $property => $value)
 ... // do stuff

if you encounter another object in there (if (is_object($value))), you would have to repeat the same thing. Ideally, this would happen in a recursive function.