首页 > 解决方案 > PHP stdClass 对象 - foreach

问题描述

我正在使用 API 来获取域 DNS 详细信息。打印的结果如下所示:

stdClass Object
(
    [test.co.uk] => stdClass Object
        (
            [records] => Array
                (
                    [0] => stdClass Object
                        (
                            [mname] => ns1.test.com.
                            [rname] => hostmaster.test.com.
                            [serial] => 12345678
                            [refresh] => 1800
                            [retry] => 900
                            [expire] => 1209600
                            [minimum-ttl] => 300
                            [ref] => 
                            [host] => test.co.uk
                            [type] => SOA
                        )

                    [1] => stdClass Object
                        (
                            [target] => ns1.test.com
                            [ref] => 
                            [host] => test.co.uk
                            [type] => NS
                        )

                    [2] => stdClass Object
                        (
                            [target] => ns2.test.com
                            [ref] => 
                            [host] => test.co.uk
                            [type] => NS
                        )

如何将每条记录([0]、[1]、[2] 等)转换为变量?我想在表格中展示它们

我尝试了以下方法,但没有显示结果

$Test=$PackageDNSInfo->test.co.uk->records[0]->mname; 
echo $Test;

标签: phparraysapiobject

解决方案


只需使用foreach它,就像在数组上一样:

foreach ($PackageDNSInfo as $url => $data) {
    foreach ($data->records as $record) {
        $type = $record->type;
        $host = $record->host;
        // etc.
    }
}

如果要直接访问给定 URL 的数据,请使用花括号:

echo $PackageDNSInfo->{'test.co.uk'}->records[0]->mname;

推荐阅读