Funcții de gestionare a variabilelor
PHP Manual

serialize

(PHP 4, PHP 5)

serializeGenerează o reprezentare ce poate fi stocată a unei valori

Descrierea

string serialize ( mixed $value )

Generează o reprezentare ce poate fi stocată a unei valori.

Aceasta este utilă pentru păstrarea sau interpretarea valorilor PHP fără a pierde tipul sau structura lor.

Pentru a transforma invers un string serializat într-o valoare PHP, utilizați unserialize().

Parametri

value

Valoarea ce trebuie serializată. serialize() prelucrează toate tipurile, cu excepția resource. Puteți chiar aplica serialize() asupra tablourilor ce conțin referințe la sine însele. Referințele circulare din interiorul tabloului/obiectului pe care îl serializați de asemenea vor fi stocate. Orice altă referință va fi pierdută.

La serializarea obiectelor, PHP va încerca să apeleze funcția-membru __sleep înainte de serializare. Aceasta se efectuează pentru a-i permite obiectului să efectueze orice curățiri, etc. înainte de a fi serializat. La fel, când obiectul este restabilit cu ajutorul unserialize() funcția-membru __wakeup este apelată.

Notă:

Membrii privați ai obiectului au denumirea clasei prefixată la denumirea membrului; membrii privați au un '*' prefixat la denumirea membrului. Aceste valori prefixate au câte un octet nul din ambele părți.

Valorile întoarse

Întoarce un string conținând reprezentarea value sub formă de byte-stream care poate fi stocată oriunde.

Exemple

Example #1 Exemplu serialize()

<?php
// $session_data conține un tablou multi-dimensional cu informație despre
// sesiune pentru utilizatorul curent. Vom utiliza serialize() pentru a
// stoca această informație într-o bază de date după încheierea interpelării.

$conn odbc_connect("webdb""php""chicken");
$stmt odbc_prepare($conn,
      
"UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $_SERVER['PHP_AUTH_USER']);
if (!
odbc_execute($stmt$sqldata)) {
    
$stmt odbc_prepare($conn,
     
"INSERT INTO sessions (id, data) VALUES(?, ?)");
    if (!
odbc_execute($stmt$sqldata)) {
        
/* Ceva nu este în regulă.. */
    
}
}
?>

Istoria schimbărilor

Versiunea Descriere
4.0.7 Procesul serializării obiectelor a fost corectat.

Note

Notă:

Atrageți atenția că multe obiecte PHP încorporate nu pot fi serializate. Însă cele ce permit acest lucru implementează interfața Serializable sau metodele magice __sleep și __wakeup. Dacă o clasă internă nu îndeplinește cel puțin una dintre aceste cerințe, ea nu poate fi serializată cu siguranță.

Există unele excepții istorice de la această regulă, când unele obiecte interne pot fi serializate fără a implementa interfața sau a expune metodele. Cel mai elocvent exemplu este ArrayObject în versiunile anterioare PHP 5.2.0.

Vedeți de asemenea


Funcții de gestionare a variabilelor
PHP Manual