Serializacja obiektow |
Serializacja obiektow |
31.07.2003, 16:58:10
Post
#1
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) |
Jak wyglada serializacja obiektow w php 5 ? Czy zmienne prywatne tez mozna zserializowac aby przeniesc do sesji czy trzeba uzywac __sleep i __wakeup do stworzenia publicznych danych z prywatnych ?
Jak najlepiej przeniesc obiekt po przeladowaniu strony ? Czy WDDX bylo by dobrym rozwiazaniem ? |
|
|
31.07.2003, 17:03:07
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) |
Cytat Jak wyglada serializacja obiektow w php 5 ? Czy zmienne prywatne tez mozna zserializowac aby przeniesc do sesji czy trzeba uzywac __sleep i __wakeup do stworzenia publicznych danych z prywatnych ? potestuj a się dowiesz... myśle, że się da, a jak się nie da możesz przeżucić je do tablicy publicznej i potem ją zserializowaćCytat Jak najlepiej przeniesc obiekt po przeladowaniu strony ? Czy WDDX bylo by dobrym rozwiazaniem ? A nie najlepiej get, albo w bazie danych? Właściwie to tak bym to zrobił bo nie znam wddx, ale takie jest moje zdanie
|
|
|
31.07.2003, 17:40:20
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) |
Po sprawdzeniu wychodzi na to, ze serializowane sa takze prywatne zmienne.
Kod testowy (moze komus sie przyda) - serializacja.php: [php:1:3f6b97ecde]<?php class Test{ public $test; private $test2; public function __construct( $a, $b ) { $this->test = $a; $this->test2 = $b; } public function get_test2() { return $this->test2; } } session_start(); if( !isset( $_SESSION['ses_st'] ) ) { $test_s = new Test( 'test1', 'test2' ); print '$test_s->test: '.$test_s->test.'<br>'; print '$test_s->test2: '.$test_s->get_test2().'<br>'; $_SESSION['ses_st'] = serialize($test_s); print '<a href="serializacja.php?'.SID.'">dalej</a>'; } else { $test_s = unserialize($_SESSION['ses_st']); print 'test $test_s->test przekazany sesja: '.$test_s->test.'<br>'; print 'test2 $test_s->test2 przekazany sesja: '.$test_s->get_test2().'<br>'; session_destroy(); } ?>[/php:1:3f6b97ecde] |
|
|
Wersja Lo-Fi | Aktualny czas: 20.04.2024 - 01:49 |