Здравствуйте.
Подскажите пожалуйста как работать с таким объектом. Или подскажите пожалуйста где удобоваримо написано.
например есть вот такой объект:
stdClass Object
(
[response] => stdClass Object
(
[money] => 46.8
[sms] => Array
(
[0] => stdClass Object
(
[value] => 78
[area] => Россия
)
[1] => stdClass Object
(
[value] => 78
[area] => Украина
)
)
)
)
Мне нужно вычленить и работать с данными.
Если я делаю (array)$object то он конвертит только верхний уровень. Может можно обратиться к элементу объекта как к элементу массива например array['element'] или перебрать тем же foreach?
Спасибо.
PS Прошу сильно не ругайтесь, если что-то не понравилось в моем сообщении я только начал изучать php.
1. Asttoxa - 09 Января, 2013 - 16:05:47 - перейти к сообщению
2. Мелкий - 09 Января, 2013 - 16:12:32 - перейти к сообщению
$object->response->sms[0]->value ?
3. Asttoxa - 09 Января, 2013 - 16:17:56 - перейти к сообщению
Мелкий пишет:
$object->response->sms[0]->value ?
Понял спасибо.
А перебрать этот объект foreach можно?
4. Мелкий - 09 Января, 2013 - 16:25:44 - перейти к сообщению
foreach умеет перебирать только массивы и специально для этого сделанные классы. stdClass в их число не входит, так что нет.
Вот элемент sms foreach'ом перебрать как раз очень даже можно, т.к. это - массив.
А это, часом, не JSON? json_decode умеет возвращать массив, вместо объекта, см. второй параметр.
Вот элемент sms foreach'ом перебрать как раз очень даже можно, т.к. это - массив.
А это, часом, не JSON? json_decode умеет возвращать массив, вместо объекта, см. второй параметр.
5. Asttoxa - 09 Января, 2013 - 16:34:29 - перейти к сообщению
Мелкий пишет:
foreach умеет перебирать только массивы и специально для этого сделанные классы. stdClass в их число не входит, так что нет.
Вот элемент sms foreach'ом перебрать как раз очень даже можно, т.к. это - массив.
А это, часом, не JSON? json_decode умеет возвращать массив, вместо объекта, см. второй параметр.
Вот элемент sms foreach'ом перебрать как раз очень даже можно, т.к. это - массив.
А это, часом, не JSON? json_decode умеет возвращать массив, вместо объекта, см. второй параметр.
Я, к сожалению, пока не знаю что такое JSON. Поэтому пока ответить вам не смогу
6. DelphinPRO - 09 Января, 2013 - 17:12:49 - перейти к сообщению
Мелкий пишет:
нет это print_r()
А это, часом, не JSON?
7. DlTA - 09 Января, 2013 - 19:37:14 - перейти к сообщению
DelphinPRO пишет:
было бы смешно, если бы не так глупо.нет это print_r()
(Добавление)
Asttoxa пишет:
откуда вы берете этот объект?
пока не знаю что такое JSON. Поэтому пока ответить вам не смогу
8. Asttoxa - 09 Января, 2013 - 21:50:56 - перейти к сообщению
DlTA пишет:
откуда вы берете этот объект?
Ответ сервера. Ответ правда был в XML формате.
9. esterio - 09 Января, 2013 - 21:53:51 - перейти к сообщению
Так обходите xml с помощью simplexml и все будет ок
10. Okula - 09 Января, 2013 - 23:41:24 - перейти к сообщению
esterio, simplexml возвращает объект Это порочный круг
11. DlTA - 09 Января, 2013 - 23:48:04 - перейти к сообщению
Asttoxa пишет:
юзайте simplexml, там как раз каждый узел можно и foreach-ем про оббегать если на на однной ветви несколько одноименных зулов, а если точно знаете что и где искать, так вообще можно выстроить цельную ветвь обращения XML формате
а чем это из xml был получен объект класса stdClass?
12. Asttoxa - 10 Января, 2013 - 16:28:43 - перейти к сообщению
DlTA пишет:
а чем это из xml был получен объект класса stdClass?
а чем это из xml был получен объект класса stdClass?
Я так понимаю вот этой функцией забивается в объект simpleXMLToArray( $xml )
внутри этой функции создается вот так $result = (object)null; и в нее набивается результаты. Вроде если я все правильно понимаю.
13. DlTA - 10 Января, 2013 - 18:18:35 - перейти к сообщению
Asttoxa пишет:
нет такого метода в стандартном наборе пыхиsimpleXMLToArray
имхо бесполезное, ибо массивом нельзя описать в полной мере элементы xml без костылей
14. Asttoxa - 10 Января, 2013 - 19:25:35 - перейти к сообщению
DlTA пишет:
имхо бесполезное, ибо массивом нельзя описать в полной мере элементы xml без костылей
Asttoxa пишет:
нет такого метода в стандартном наборе пыхиsimpleXMLToArray
имхо бесполезное, ибо массивом нельзя описать в полной мере элементы xml без костылей
А эта функция что делает? SimpleXMLElement
Вернее правильно вот так вроде new SimpleXMLElement($str)
-------------
А понял... создает объект object(SimpleXMLElement) тоесть, как я понимаю, загоняет строковое значение XML в объект.
Чет я совсем запутался.
Подскажите что нужно сделать с XML ответом сервака? Как его правильно обработать? куда лучше загнать?
Вот что я имею: Запрос делаю CURL, а выходит ответ строкой (string) вот примерно такого вида: "<?xml version="1.0" encoding="utf-8"?> <first value="123"> ok </first >"
15. esterio - 10 Января, 2013 - 19:37:24 - перейти к сообщению
http://www[dot]ibm[dot]com/developerwork[dot][dot][dot]lexml/index[dot]html
первая ссилка в гугле и все расписано
первая ссилка в гугле и все расписано