Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]jak wyswietlic elementy klasy stdClass bez względu na ilośc elementów ?
wiewiorek
post
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 11
Dołączył: 5.09.2009

Ostrzeżenie: (0%)
-----


SoapClient() zamienia mi przekazaną tablicę z jedną pozycją zamówienia:
  1. $tab['numer'] = '56';
  2. $tab['pozycjaZamowienia'][0]['nazwa'] = 'kot';
  3. $tab['pozycjaZamowienia'][0]['ilosc'] = 1;


na obiekt bez tablicy pozycji zamówienia:

  1. stdClass Object ( [numer] => 56 [pozycjaZamowienia] => stdClass Object ( [nazwa] => kot [ilosc] => 1 ) )


Natomiast tablicę z więcej niż jedną pozycją:
  1. $tab['numer'] = '57';
  2. $tab['pozycjaZamowienia'][0]['nazwa'] = 'pies';
  3. $tab['pozycjaZamowienia'][0]['ilosc'] = 1;
  4. $tab['pozycjaZamowienia'][1]['nazwa'] = 'wiewiorka';
  5. $tab['pozycjaZamowienia'][1]['ilosc'] = 1;


na obiekt z tablicą pozycji zamówienia:

  1. stdClass Object ( [numer] => 57 [pozycjaZamowienia] => Array ( [0] => stdClass Object ( [nazwa] => pies [ilosc] => 1) [1] => stdClass Object ( [nazwa] => wiewiorka [ilosc] => 1 ) ) )

Więc w pierwszym wypadku żeby przejść po elementach pozycji zamówienia trzeba pisać bez wykorzystania pętli:
  1. $nazwa = $tab->pozycjaZamowienia->nazwa;
  2. $ilosc = $tab->pozycjaZamowienia->ilosc;


a w drugim wypadku trzeba pisac z wykorzystaniem pętli:
  1. for($i = 0; $i < count($tab->pozycjaZamowienia); $i++)
  2. {
  3. $nazwa = $tab->pozycjaZamowienia[$i]->nazwa;
  4. $ilosc = $tab->pozycjaZamowienia[$i]->ilosc;
  5. }


Nie ma jakiegoś bardziej uniwersalnego sposobu, żeby zawsze można było używać pętli ?

Ten post edytował wiewiorek 18.08.2010, 15:25:18
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Przecie napisałem praktycznie to samo...?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.09.2025 - 08:51