PHP读取对象数组中的第一项

时间:2017-04-01 20:21:27

标签: php gocardless

我的PHP代码正在返回这个数据数组:

GoCardlessPro\Core\ListResponse Object
(
    [records] => Array
        (
            [0] => GoCardlessPro\Resources\Mandate Object
                (
                    [model_name:protected] => Mandate
                    [created_at:protected] => 2017-04-01T16:49:09.642Z
                    [id:protected] => ID001
                    [links:protected] => stdClass Object
                        (
                            [customer_bank_account] => CB001
                            [creditor] => CR001
                            [customer] => CU001
                        )

                    [metadata:protected] => stdClass Object
                        (
                        )

                    [next_possible_charge_date:protected] => 2017-04-06
                    [payments_require_approval:protected] => 
                    [reference:protected] => RE001
                    [scheme:protected] => bacs
                    [status:protected] => active
                    [data:GoCardlessPro\Resources\BaseResource:private] => stdClass Object
                        (
                            [id] => 123
                            [created_at] => 2017-04-01T16:49:09.642Z
                            [reference] => RE001
                            [status] => active
                            [scheme] => bacs
                            [next_possible_charge_date] => 2017-04-06
                            [payments_require_approval] => 
                            [metadata] => stdClass Object
                                (
                                )

                            [links] => stdClass Object
                                (
                                    [customer_bank_account] => 001
                                    [creditor] => CR001
                                    [customer] => CU001
                                )

                        )

                    [api_response] => 
                )

        )
)

我希望能够读取records数组中第一项的ID。

此数据包含在名为$GC_Mandate;

的变量中

我试过这些:

echo $GC_Mandate->records->{0}->id;

echo $GC_Mandate->records->0->id;

echo $GC_Mandate->records->[0]->id;

$GC_Mandate = $GC_Mandate->records;
echo $GC_Mandate->{0}->id;

但没有人会返回数据

4 个答案:

答案 0 :(得分:1)

要获取第一条记录,您需要的语法是$GC_Mandate->records[ 0 ]

但是,该对象是GoCardlessPro\Resources\Mandate对象,其成员id受保护 1 ,因此我们需要知道GoCardlessPro\Resources\Mandate的接口(它的公共方法 1 ),知道我们是否能以某种方式检索id的值。

我的猜测是getId(),因此完整的语法将成为

$GC_Mandate->records[ 0 ]->getId()

但是,这只是猜测。您必须查看GoCardlessPro\Resources\Mandate的文档/类定义,以确定是否可以检索id

Turns out(如果我正在链接到正确的github存储库),您可以这样做:

$GC_Mandate->records[ 0 ]->id

因为GoCardlessPro\Resources\Mandate扩展了GoCardlessPro\Resources\BaseResource,这会通过GoCardlessPro\Resources\BaseResource::__get() 2 公开受保护的成员。

1. visibility in PHP
2. magic methods in PHP 功能

答案 1 :(得分:0)

我无法发表评论所以我想我必须发帖。

您应该尝试print_r($GC_Mandate);并查看它给出的内容,然后从那里开始。

答案 2 :(得分:0)

尝试$GC_Mandate->records[0]->__get('id')

答案 3 :(得分:0)

它将返回所有数据.. for perticulat data将其放入foreach循环

 print_r($GC_Mandate['records']);