(PHP 4, PHP 5)
serialize — Erzeugt eine speicherbare Repräsentation eines Wertes
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 Sie unserialize().
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.
Hinweis: Den Namen der privaten Eigenschaften eines Objekts wird der Klassenname vorangestellt; den Namen geschützter Eigenschaften wird ein '*' vorangestellt. Diese vorangestellten Werte werden von Nullbytes umschlossen.
Gibt einen String zurück, der eine Byte-Stream-Repräsentation von value enthält, die beliebig gespeichert werden kann.
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", "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 ... */
}
}
?>
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. |
Hinweis: Es ist nicht möglich, PHP-eigene Objekte zu serialisieren.