PHP Handbuch
Zurück |  | Weiter

# serialize

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

serialize -- Erzeugt eine speicherbare Repräsentation eines Wertes

## Beschreibung

string serialize ( mixed value )

serialize() gibt einen String zurück, der eine Byte-Stream-Repräsentation von `value` enthält, die beliebig gespeichert werden kann.

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(). 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 letzte "Aufräumaktionen", bevor es serialisiert wird. Ebenso wird die Methode __wakeup() aufgerufen, wenn das Objekt mittels unserialize() wiederhergestellt wird.

> Anmerkung: Dies funktioniert nicht korrekt bis PHP 4.0.7.

> Anmerkung: In PHP 3 werden Objekteigenschaften serialisiert, aber die Methoden gehen verloren. Diese Beschränkung wurde in PHP 4 aufgehoben, so dass sowohl Eigenschaften als auch Methoden wiederhergestellt werden können. Bitte lesen Sie den Abschnitt Objekte serialisieren des Kapitels Klassen und Objekte für weitere Informationen.

> Es ist nicht möglich PHP-interne Objekte zu serialisieren.

Beispiel 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", "moorhuhn"); $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)) { /* Irgendwas ging schief ... */ } } ?>`

Siehe auch unserialize().

Zurück | Zum Anfang | Weiter
print_r | Nach oben | settype