serialize

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

serialize --  Genera una versione archiviabile del valore

Descrizione

string serialize ( mixed value)

La funzione serialize() restituisce una stringa contenente un flusso di bytes rappresentante value che possa essere archiviato ovunque.

Questo pu˛ essere utile per archiviare o passare valori senza perdere il tipo e la struttura.

Per ottenere il valore dalla stringa serializzata, utilizzare la funzione unserialize(). La funzione serialize() gestisce tutti i tipi di variabili tranne il tipo resource. Possono essere elaborati da serialize() array che contengano riferimenti a se stessi. Saranno archiviati anche i riferimenti interni agli array e ai tipi object passati a serialize()

Quando si esegue la serializzazione di oggetti, il PHP cerca di eseguire la funzione __sleep() prima di cominciare la serializzazione. Questo permette all'oggetto di eseguire le ultime operazioni di chiusura prima di essere serializzato. Analogamente quando l'oggetto viene ripristinato la funzione unserialize() richiama la funzione membro __wakeup().

Nota: Nella versione 3 di PHP si serializzano le proprietÓ dell'oggetto, ma non i metodi. Nella versione 4 viene superata questa limitazione e possono essere recuperati sia le proprietÓ sia i metodi. Per maggiori informazioni vedere la sezione Serializzare oggetti in Oggetti e Classi.

Esempio 1. Esempio di serialize()

<?php
// L'array multi-dimensionale $session_data contiene le informazioni della sessione
// per l'utente. Si userÓ serialize() per memorizzare le informazioni
// all'interno di un database alla fine della richiesta..

$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn,
      
"UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $PHP_AUTH_USER);
if (!
odbc_execute($stmt, &$sqldata)) {
    
$stmt = odbc_prepare($conn,
     
"INSERT INTO sessions (id, data) VALUES(?, ?)");
    if (!
odbc_execute($stmt, &$sqldata)) {
    
/* Qualcosa Ŕ andato storto */
    
}
}
?>

Vedere anche: unserialize().