serialize
(PHP 4, PHP 5, PECL axis2:0.1.0-0.1.1)
serialize — Erzeugt eine speicherbare Repräsentation eines Wertes
Beschreibung
Erzeugt eine speicherbare Repräsentation eines Wertes.
Diese Funktion dient der Speicherung oder Übergabe von PHP-Werten, ohne dass diese ihren Typ oder ihre Struktur verlieren.
Um eine serialisierte Zeichenkette wieder als PHP-Wert verfügbar zu machen, verwenden Sieunserialize().
Parameter Liste
- value
-
Der zu serialisierende Wert.serialize() kann mit allen Typen umgehen, ausgenommen mit dem resource-Typ. Sie können sogar Arrays serialisieren, die Referenzen auf sich selbst enthalten. Zirkelbezüge innerhalb des Arrays/Objekts, das Sie serialisieren, werden ebenfalls gespeichert. Alle anderen Referenzen gehen verloren.
Wenn Objekte serialisiert werden, versucht PHP die Methode __sleep() vor der Serialisierung aufzurufen. Dies erlaubt einem Objekt z.B. letzte "Aufräumaktionen", bevor es serialisiert wird. Ebenso wird die Methode __wakeup() aufgerufen, wenn das Objekt mittels unserialize() wiederhergestellt wird.
Rückgabewerte
Gibt einen String zurück, der eine Byte-Stream-Repräsentation von value enthält, die beliebig gespeichert werden kann.
Beispiele
Example#1 serialize()-Beispiel
<?php
// $session_data enthält ein mehrdimensionales Array mit Session-Informationen
// des aktuellen Benutzers. Wir benutzen serialize() um diese Infos am Ende
// der Anfrage in eine Datenbank zu speichern.
$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)) {
/* Irgendwas ging schief ... */
}
}
?>
ChangeLog
Version | Beschreibung |
---|---|
4.0.7 | Die Serialisierung von Objekten funktioniert korrekt. |
4.0.0 | Bei der Serialisierung eines Objekts gehen die Methoden nicht verloren. Lesen Sie dazu bitte den Abschnitt Objekte serialisieren. |
Anmerkungen
Hinweis: Es ist nicht möglich, PHP-eigene Objekte zu serialisieren.