Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] problem z wyłuskaniem "parametrów" w obiekcie
swiezak
post
Post #1





Grupa: Zarejestrowani
Postów: 159
Pomógł: 0
Dołączył: 21.08.2011

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


Witam.
Na poczatek fragmenty kodu:
Kod
Object ( [value:protected] => stdClass Object ( [GetRolesResult] => stdClass Object ( [ServerID] => 12d4a65a-955f-479d-a8b9-bf70c5f75a2a [Status] => OK [TimeStamp] => 2012-05-23T11:52:06.515322+02:00 [Version] => 2 [Groups] => stdClass Object ( [RoleGroup] => stdClass Object ( [GroupID] => b8395df7-d963-4f46-ad93-506ebafaf960 [Name] => Administrator [Symbol] => ADM [Type] => A ) ) ) )

Object ( [value:protected] => stdClass Object ( [GetRolesResult] => stdClass Object ( [ServerID] => 12d4a65a-955f-479d-a8b9-bf70c5f75a2a [Status] => OK [TimeStamp] => 2012-05-23T11:56:52.745322+02:00 [Version] => 2 [Groups] => stdClass Object ( [RoleGroup] => Array ( [0] => stdClass Object ( [GroupID] => 79971909-26d4-4e92-9ed3-ac606b3a045e [Name] => Redaktor [Symbol] => RED [Type] => A ) [1] => stdClass Object ( [GroupID] => 35707a3c-5210-4766-9f84-cb605a341a57 [Name] => Moderator [Symbol] => MOD [Type] => A ) ) ) ) )


W pierwszym przypadku parametr "name" wyciagam przy uzyciu tej instrukcji: $r->GetRolesResult->Groups->RoleGroup->Name;

W drugim natomiast:
$r->GetRolesResult->Groups->RoleGroup[0]->Name;
oraz
$r->GetRolesResult->Groups->RoleGroup[1]->Name;

W jaki sposob za pomoca jednej instrukcji wyciagac nazwy uzytkownikow (ujednolicic pobieranie struktury)? Zarowno, gdy mamy do czynienia z "tablica", jak i "skalarem"?
Bylbym wdzieczny za pomoc.

Ten post edytował swiezak 23.05.2012, 11:16:11
Go to the top of the page
+Quote Post
bastard13
post
Post #2





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


Atrybut powinien mieć określony typ. Jeżeli raz jest to tablica, a w innym przypadku nie, to jest błąd. Zamień wszystko na tablicę, wtedy w przypadku jednego elementu masz jednoelementową tablicę.
Inna sprawa, że tworzenie takich łańcuszków zależności nie jest zbyt dobrym pomysłem.


--------------------
Go to the top of the page
+Quote Post
swiezak
post
Post #3





Grupa: Zarejestrowani
Postów: 159
Pomógł: 0
Dołączył: 21.08.2011

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


To jest odpowiedz z php'wego SOAP. Ktos napisal API do aplikacji, udostepnil pewne procedury ktore zwracaja obiekty, a ja teraz siedze i mysle jak obejsc co rusz pojawiajace sie niedogodnosci.
Go to the top of the page
+Quote Post
bastard13
post
Post #4





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


Ja bym otoczył, to jakimś obiektem tzn. odpowiedź sopa potraktowałbym jako dane. Łatwiej będzie CI się później na tym pracowało, jeżeli stworzysz sobie obiekt z niezbędnymi Ci metodami.
Natomiast przepisanie tych roli zajęłaby się faktorka tzn. byłby mniej więcej taki kod:
  1. $r->GetRolesResult->Groups->RoleGroup = is_array($r->GetRolesResult->Groups->RoleGroup) ? $r->GetRolesResult->Groups->RoleGroup : array($r->GetRolesResult->Groups->RoleGroup);

I później już masz pewność, że jest to tablica.


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 06:49