Post
#1
|
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%)
|
Witam Was… Ostatnio zainstalowałem sobie nowy serwer (zrobiłem update) z php 5.1.1 na 5.2.0. W rezultacie połowa tablic przestała mi działać… pięknie co? Powiem szczeże że się zdenerwowałem jak nic… już kilka dni badam o co chodzi. Przykładowy kod z widoku mojego frameworka:
Obiekt $oView oczywiście został wcześniej zainicjowany. Przejdźmy do rzeczy… Zaraz po zadeklarowaniu tablicy sprawdzamy ją tak dla pewności, że jest. „No dziwne by było żeby jej nie było” (masło maślane ale prawda sama w sobie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) Ok. jedziemy dalej… dodajemy do tablicy kolejne elementy poprzez użycie [] – co to oznacza każdy wie. Po dodaniu elementów lumpujemy tablice po raz kolejny. O dziwo jest pusta (IMG:http://forum.php.pl/style_emoticons/default/blink.gif) . Przypominam, że zrobiłem update z php 5.1.1 na 5.2.0. Czyżby wlepili tam jakiegoś buga? Zaraz po updacie ta część kodu przestała działać. Podobnie warstwa ACL, gdzie klasa User w podobny sposób sama sobie dodaje grupy użytkownika – dziwiłem się, że do żadnego kontrolera nie mam dostępu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Teraz wszystko jasne. Zainteresowało mnie to, przeprowadziłem testy. Napisałem dwa przykłady, które działają… Test 01:
Test 02:
Co jest nie tak? Może załącze jeszcze klase mojego widoku I usera, aby pokazać, że dodaję elementy w taki sam sposób: User Class (patrz metody setGroup(), hasGroup(), getGroup() ) http://phpfi.com/179458 View Class (patrz metody __get(), __set() ) http://phpfi.com/179456 Ten post edytował Athlan 28.11.2006, 16:37:22 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%)
|
Panowie, panowie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Chyba zupełnie odbiegliście od tematu. @cassis już kompletnie nie czai blusa. Chodzi o tworzenie elementów tablicowych z __set() i wkładanie ich do tablicy jako atrybut klasy prawda? Bo co przyjmie pierwszy parametr metody magicznej __set() przy podaniu $oObject->element[] = 'value'; ? Takie coś: $this->_aAttributes[$sName] - przekształci się w : $this->_aAttributes[element[]] a nie $this->_aAttributes[element][] :!: Nie czujecie fazy czy udajecie? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Temat jest imho EOT. Problem wyjaśniony, możnaby podyskutować o tym, dlaczego przechodziło to w wersjach starszych niż php 5.2.0 ? hę? Pozdrawiam, Athlan. Ten post edytował Athlan 5.12.2006, 14:38:47 |
|
|
|
Athlan Tablice w php 5.2.0 28.11.2006, 16:36:20
koala Witam
Nie instalowałem jeszcze 5.2 ale tutaj : htt... 29.11.2006, 00:17:53
hugo_amv Witam
Rozwiazaniem tego problemu jest użycie funkc... 29.11.2006, 12:44:33
J4r0d Pytanie dlaczego nie można przypisywać elementu w ... 29.11.2006, 15:04:48
Cysiaczek Potestowałem troszkę i nie zauważyłem różnic w obs... 29.11.2006, 15:29:03
hwao Musi Ci wywalać gdzieś jakiś errro, daj PEŁNE rapo... 29.11.2006, 19:19:42
Ace $oArrayTest = ArrayTest();
a nie powinno byc... 30.11.2006, 10:15:29
Athlan Dziś odkryłem swój błąd, który... 30.11.2006, 17:06:19
cassis Proponuje zamiast tablic w tym przypadku użyć Arra... 4.12.2006, 08:33:00 
J4r0d Cytat(cassis @ 4.12.2006, 08:33:00 ) ... 4.12.2006, 18:08:25
cassis Do tego właśnie służą magiczne metody __get() __se... 4.12.2006, 18:14:42
J4r0d Tylko jaki jest sens przypisywać nieistniejącej zm... 4.12.2006, 19:28:34
cassis maly przyklad
przed uzyciem skontaktuj sie z baza ... 4.12.2006, 20:57:58
cassis no tak - troche poplynalem. Chcialem wytlumaczyc j... 5.12.2006, 16:20:24 ![]() ![]() |
|
Aktualny czas: 17.01.2026 - 16:50 |