1

我在 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

4 回答 4

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.


原来(如果我链接到正确的 github 存储库)你可以这样做:

$GC_Mandate->records[ 0 ]->id

因为GoCardlessPro\Resources\Mandateextends GoCardlessPro\Resources\BaseResource,它通过GoCardlessPro\Resources\BaseResource::__get()2暴露受保护的成员。


1. PHP 中的可见性
2. PHP 中的魔法方法

于 2017-04-01T20:32:18.237 回答
0

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

 print_r($GC_Mandate['records']);
于 2017-04-01T21:07:48.607 回答
0

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

于 2017-04-01T20:37:44.033 回答
0

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

你应该尝试print_r($GC_Mandate);看看它给出了什么,然后从那里开始。

于 2017-04-01T20:24:25.483 回答