Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ PHP _ Jak dobrać się do właściwości (pół?) obiektu (zwracanego np. przez API allegro)

Napisany przez: marcinpl87 12.08.2012, 13:48:45

Trochę głupie pytanie mam bo nie mogę odwołać się do jednej właściwości/pola obiektu zwracanego przez API.

Mój request wygląda tak:

  1. $items = $client->doShowCat($session['session-handle-part'], 5914);

$client jest instancją klasy SoapClient a to $session['session-handle-part'] biorę sobie z odpowiedzi na request w którym wysyłam dane do logowania.

To mi zwraca tablicę obiektów, i po tej tablicy iteruję sobie w pętli foreach:
  1. foreach($items['cat-items-array'] as $item) {
  2. ...
  3. }

i jak w środku pętli wpiszę
  1. http://www.php.net/var_dump($item);

to dostaję:
  1. object(stdClass)#33 (27) {
  2. ["s-it-id"]=>
  3. float(2534983500)
  4. ["s-it-name"]=>
  5. string(50) "PLAYSTATION MOVE STARTER - KONTROLER MOVE + KAMERA"
  6. ["s-it-price"]=>
  7. float(0)
  8. ["s-it-starting-price"]=>
  9. float(0)
  10. (...)
  11. ["s-it-is-allegro-standard"]=>
  12. int(0)
  13. ["s-it-has-free-shipping"]=>
  14. int(0)
  15. ["s-it-order-fulfillment-time"]=>
  16. int(0)
  17. }

I nie wiem teraz jak wyświetlić jedną właściwość/pole/wartość :/
var_dump($item["s-it-id"]); nic nie zwraca
var_dump($item->s-it-id); zwraca int(0) choć to nie prawda wink.gif

wiem że mogę użyć get_object_vars() na tym obiekcie i potem odwoływać się do niego jak do arraya, ale czy mogę bez tego get_object_vars() odwoływać się bezpośrednio do poszczególnych pól? jak to zrobić?

Napisany przez: Yorki 12.08.2012, 13:52:13

A może:

  1. $item->{'s-it-id'}

Napisany przez: marcinpl87 12.08.2012, 14:05:40

Wow! działa, dziękuję bardzo!
Czy mogę prosić jeszcze o małe wyjaśnienie dlaczego taki zapis? i dlaczego $item->s-it-id nie działa w tym przypadku?

Napisany przez: Crozin 12.08.2012, 14:18:37

Ponieważ w takim przypadku minus traktowany jest jako operator odejmowania. Ostecznie taki kod jest rozumiany jako wyrażenie o wartości: od właściwości "s" obiektu $item odejmij wartość stałej "it" oraz wartość stałej "id".

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)