![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 1 Dołączył: 27.04.2004 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam poważny problem ze znikającymi zmiennymi. Nie wiem czy jest to błąd php'a czy może ja źle rozumię działanie... Może opiszę całą sytuację: Staruję sesję. Sprawdzam czy zmienna sesyjna jest ustawiona. Jeśli jest ustawiona wypisuje ją. Jesli nie jest ustawiona tworzę nowy obiekt. Obiekt kończy swój zakres i wykonuje destruktor. Destruktor zapisuje do zmiennej sesyjnej wartość. Wartość jest w tej zmiennej zapisana - widać to - robione jest echo. Skrypt kończy działanie. Po ponownym uruchomieniu skryptu robiony jest start sesji i sprawdzanie zmiennej sesyjnej. Została ona ustawiona w destruktorze więc powinna być dostępna, lecz... nie ma jej. Znikła... Pytanie... Co się z nią stało? Była poza zakresem destruktora (zmienna globalna) więc nie powinna zostać zniszczona, natomiast wygląda na to że tak się stało.
-------------------- Pozdrawiam,
Dawid |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(DavidPL @ 2005-03-14 09:52:40) Obiekt kończy swój zakres i wykonuje destruktor. Co przez to rozumiesz? A poza tym obiekt nie wywołuje automatycznie swojego destruktora. Wywołany on zostanie w chwili niszczenia obiektu, np w chwili wykonania :
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 1 Dołączył: 27.04.2004 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Jak najbardziej... Zauważ że w momęcie kończenia działania skryptu obiekt też jest niszczony więc destruktor się wykonuje, sesja jest ustawiana więc przy kolejnym uruchomieniu skryptu powinna być dostępna.
-------------------- Pozdrawiam,
Dawid |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Byc moze sesja jest zapisywana PRZED likwidacja obiektu -> przed uruchomieniem destruktora, wiec ta zmienna nie zostanie juz zapisana.
Sprobuj dodac unset() na koniec skryptu -- zeby wymusic usuniecie obiektu przed zakonczeniem skryptu.. -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
-------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 1 Dołączył: 27.04.2004 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Ups...
Moja wina, moja wina, moja bardzo wielka wina... Biję się w pierś. -------------------- Pozdrawiam,
Dawid |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 19:26 |