Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Serializacja obiektow
Forum PHP.pl > Forum > PHP > Object-oriented programming
Seth
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 ?
Jabol
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
Seth
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]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.