Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Poważny problem z destruktorem, Błąd czy ja nie rozumię działania???
DavidPL
post
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.

  1. <?php
  2. // What is happened with session variable?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
  3. // I set it, but where it is?
  4.  
  5.  
  6. if (isset($_SESSION['var']))
  7. echo 'Reading session var: '.$_SESSION['var'];
  8. else
  9. $object = new Clas();
  10.  
  11.  
  12. class Clas
  13. {
  14. function __destruct()
  15. {
  16. $_SESSION['var'] = 'value';
  17. echo 'Setting session var: '.$_SESSION['var'];
  18. }
  19. }
  20. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 24.12.2025 - 16:23