![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 219 Pomógł: 5 Dołączył: 18.07.2006 Skąd: Piekary Śląskie Ostrzeżenie: (0%) ![]() ![]() |
Jak wiadomo ukazała się niedawno wersja 5.2.0 php
Zainstalowałem ją czym prędzej ale napotkałem problem. Jest klasa:
Do tej pory gdy robiłem
otrzymywałem efekt zgodny z zamierzeniem (wiadomo, że klucz $this->zmienne['dane'] powinien już wcześniej istnieć i istnieje). Metoda __get zwraca referencję do odpowiedniego obszaru w pamięci i przypisywana jest tam wartość 'wartosc'. W php 5.1.x działa bez problemu. W php 5.2.0 nie przypisuje. Spotkał się jeszcze ktoś z tym. Dodam, że generalnie metody magiczne działają. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Nie probowalem ale dopiero od 5.2 mozna ponoc zmieniac zwrocona tablice przez __get(), a sproboj usunac '&' sprzed metody.
O: Cytat Fixed bug #38146 Cannot use array returned from foo::__get('bar') in write context). (Dmitry) (5.2)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 219 Pomógł: 5 Dołączył: 18.07.2006 Skąd: Piekary Śląskie Ostrzeżenie: (0%) ![]() ![]() |
Nie probowalem ale dopiero od 5.2 mozna ponoc zmieniac zwrocona tablice przez __get(), a sproboj usunac '&' sprzed metody. Już tego próbowałem zanim wysłałem posta na forum. Wcześniej znalazłem też notkę o tym bugu, o którym mówisz i byłem mocno zaskoczony. Poza tym ja nie dostaję komunikatu "Fatal error: Cannot use array returned from foo::__get ('bar') in write context", który jest zaqcytowany w noce o tym bugu. U mnie przypisanie jest wykonywane tak jakby poprawnie. Tylko jakby nie widział, że to jest referencja. Ha! Zrobilem jeszcze testy. mam klase jak ostatnio tylko lekko zmodyfikowana. bardziej odzwierciedla przypadek z mojego rzeczywstego skryptu bo to tutaj chyba lezy bug.
I teraz:
Teraz jesli zrobie:
To na ekranie jest drukowane:
Dodam, ze na php 5.1.x nie ma problemów. ?> Z dalszych testów wynika, że następujący kod:
Zachowuje się poprawnie. Ten post edytował cicik 8.11.2006, 09:21:43 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 06:58 |