我的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;
但没有人会返回数据
答案 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']);