Forum und email

serialize

(PHP 4, PHP 5, PECL axis2:0.1.0-0.1.1)

serialize — Genereert een bewaarbare representatie van een waarde

Beschrijving

string serialize ( mixed $value )

serialize() geeft een string terug die een byte-stream representatie van value bevat die overal kan worden opgeslagen.

Dit is nuttig om PHP waarden op te slaan of door te geven zonder hun type en structuur te verliezen.

Om de serialized string weer in een PHP waarde te veranderen, moet je unserialize() gebruiken. serialize() behandelt alle typen, behalve het resource-type. Je kan zelfs arrays die verwijzingen naar zichzelf bevatten serialize()ren. De verwijzingen in de array of het object dat je aan het serialize()n bent zullen ook worden opgeslagen.

Als je objecten gaat serializen, dan zal PHP proberen de functie __sleep()() van dat object aan te roepen voor het serializeren. Dit om het object de mogelijkheid te geven dingen op te schonen voor het serializen. Op dezelfde manier wordt de __wakeup()() functie aangeroepen als het object is gereconstrueerd met de unserialize() functie.

Note: In PHP 3, zullen properties van objecten worden geserializeerd, maar methods zullen verloren gaan. PHP 4 kent die limitatie niet, en zal zowel de properties als de methods herstellen. Zie de Serializing Objects sectie van Classes and Objects voor meer informatie.

Example#1 serialize() voorbeeld

// $session_data bevat een multi-dimensionele array met sessie
// informatie voor de huidige gebruiker.  We gebruiken serialize() om deze
// data op te slaan in een database aan het einde van het request.

$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)) {
    /* Er ging iets fout. Bitch, whine and moan. */
    }
}

Zie ook: unserialize().