Я работаю с API Expedia и он работает хорошо, но я не знаю, как получить доступ к этому особому типу ключа массива. Ответ дан ниже
$response =
stdClass Object
(
[@size] => 1
[@activePropertyCount] => 144
[city] => 1
[@hotelId] => 12345
[HotelSummary] => stdClass Object
(
[@order] => 0
[@ubsScore] => 1074874
[hotelId] => 151689
[RoomRateDetailsList] => stdClass Object
(
[RoomRateDetails] => stdClass Object
(
[roomTypeCode] => 195577
[rateCode] => 202369379
[maxRoomOccupancy] => 3
[quotedRoomOccupancy] => 2
[minGuestAge] => 0
[roomDescription] => Deluxe Room
[propertyAvailable] => 1
[propertyRestricted] =>
[expediaPropertyId] => 526332
)
)
)
)
Я хочу получить доступ к значению @hotelId под ключом ‘city’, но не могу
Я пробовал с обоими типами, но оба раза не получилось
$response->hotelId
and
$response->@hotelId
Пожалуйста, помогите мне .. спасибо заранее
Это должно работать для вас:
(Это потому, что вы не можете получить доступ к свойству, которое не имеет допустимого имени переменной, поэтому вы должны использовать фигурный синтаксис)
echo $response->{"@hotelId"};
Вы можете прочитать больше об этом в руководстве: http://php.net/manual/en/language.variables.variable.php
И цитата оттуда:
Фигурные скобки также может использоваться, чтобы четко разграничить имя свойства. Они наиболее полезны при доступе к значениям в свойстве, которое содержит массив, когда имя свойства состоит из нескольких частей, или когда имя свойства содержит символы, которые не являются допустимыми (например, из json_decode () или SimpleXML).
Других решений пока нет …