Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zapis obiektu w sesji. Dziwne zachowanie.
qrzysztof
post
Post #1





Grupa: Zarejestrowani
Postów: 220
Pomógł: 19
Dołączył: 25.04.2009

Ostrzeżenie: (0%)
-----


Mam następujący kod:

Kod
<?php

class MyObj {
    public $property = 1;
}

session_start();

// inicjalizacja
$obj = new MyObj;
$variable = 'a';

// zapis do sesji
$_SESSION['obj'] = $obj;
$_SESSION['var'] = $variable;

// zmiana wartosci
$obj->property = 2;
$variable = 'b';

// odczyt z sesji
$o = $_SESSION['obj'];
$v = $_SESSION['var'];

// wyjscie
echo 'wlasciwosc obiektu: '. $o->property;
echo '<br>';
echo 'zmienna: '.$v;


a na wyjściu programu:

wlasciwosc obiektu: 2
zmienna: a


Można zaobserwować, że zwykła zmienna oraz obiekt zachowują się przy zapisie do sesji nieco inaczej.

Pytania:

1) Dlaczego nie wyświetliło się wlasciwosc obiektu: 1?
2) Czy zapis obiektu w sesji polega na zapisie w niej referencji do obiektu?
3) Czy w związku z tym można zapisać obiekt w sesji na samym początku skryptu, a potem dowolnie go zmieniać bo i tak wszystkie zmiany zostaną odnotowane w sesji?
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: 20.12.2025 - 23:54