![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
jednak php5 ciągle doskonałe nie jest... Dziś prawie zawału bym dostał przez beznadziejny błąd.
Jeśli moglibyście - sprawdźcie, jak to działa na waszych wersjach php - u mnie w każdym razie na php5.0.2 zarówno na windowsie jak i linuksie pojawił się ten sam błąd. Natomiast na php 5.1.0 alfa wszystko jest OK.
Jak łatwo zauważyć - wartość iForDestruct powinna się zwiększać co każde odświerzenie, tak jak to się dzieje w przypadku iForConstruct Niestety - nic takiego się nie dzieje. ++++++++++++++++++++++++++ Co ciekawe - na bugs.php.net otrzymałem informację, że jest to normalne i oczekiwane zachowanie, ponieważ "The session is ended before destructors are run." Cikawe, czy to oznacza, że aktualne zachowanie php5.1 zostanie zmodyfikowane, czy też ktoś jednak przekonał się, że jest to jednak niezgodne z oczekiwaniem większości? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 521 Pomógł: 0 Dołączył: 3.11.2003 Skąd: 3city Ostrzeżenie: (0%) ![]() ![]() |
To by było straszne. To, czy w danym momencie obiekt jeszcze istnieje, zależy od tego, czy użytkownik napisze sobie (nawet pustą) metodę __destruct?! (IMG:http://forum.php.pl/style_emoticons/default/blink.gif)
A jeżeli ja chcę miec obiekt do obsługi sesji, który ma destruktor? Np. przechowuję sesje w bazie danych i chcę zakończyć połączenie. Cokolwiek. To jest masakrycznie nieintuicyjne. "Jeżeli używasz jakiś klas w obsłudze sesji, to upewnij się, że żadna z nich nie ma metody __destruct. Oraz żadna z ich klas-rodziców. Oraz rodziców rodziców..." Poza tym, DeyV, w ten sposób kochani developerzy php spowodowaliby jeszcze jedną katastrofę. Wrzucasz jakiś obiekt do sesji. Proste. Koniec skryptu. Teraz php niszczy ten obiekt, a potem - uwaga - serializuje go i zapisuje do pliku (IMG:http://forum.php.pl/style_emoticons/default/blink.gif) . Jeżeli uda im się zserializować obiekt, który właśnie zniszczyli, to chyba dostaną Nobla. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 12:55 |