У меня есть мой код на 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
массив.
Эти данные содержатся в переменной с именем $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;
Но никто не вернет данные
Чтобы получить первую запись, вам нужен следующий синтаксис: $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\Mandate
продолжается GoCardlessPro\Resources\BaseResource
, который выставляет защищенных членов через GoCardlessPro\Resources\BaseResource::__get()
2.
Я не могу комментировать, поэтому я думаю, что мне придется отправлять.
Вы должны попытаться print_r($GC_Mandate);
и посмотри, что он выдает, а потом иди оттуда.
Пытаться $GC_Mandate->records[0]->__get('id')
он будет возвращать все данные .. для perticulat данных поместите это в цикл foreach
print_r($GC_Mandate['records']);