循环遍历包含对象php的对象

dot*_*tty 2 php foreach object

我有一个包含其他对象的PHP对象

$obj->sec_obj->some_var;
Run Code Online (Sandbox Code Playgroud)

我想使用foreach循环来遍历对象和所有对象.我认为最高等级是3,所以

$obj->sec_obj->third_obj->fourth_obj
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

sli*_*kts 9

这只是基本的递归.

function loop($obj)
{
    if (is_object($obj)) {
        foreach ($obj as $x) {
            loop($x);
        }
    } else {
        // do something
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:打印键和值对:

function loop($obj, $key = null)
{
    if (is_object($obj)) {
        foreach ($obj as $x => $value) {
            loop($value, $x);
        }
    } else {
        echo "Key: $key, value: $obj";
    }
}
Run Code Online (Sandbox Code Playgroud)