Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Serializacja obiektow
Seth
post 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 ?
Go to the top of the page
+Quote Post
Jabol
post 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
Go to the top of the page
+Quote Post
Seth
post 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]
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 20:56