strval
unset
Funktionen zur Behandlung von Variablen
PHP Manual

# unserialize

(PHP 4, PHP 5)

unserialize — Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP

### Beschreibung

mixed unserialize ( string `$str` )

unserialize() nimmt eine einzelne Variable aus einer serialisierten Datenmenge und wandelt sie in einen PHP-Wert zurück.

### Parameter-Liste

`str`

  Der serialisierte String.

  Wenn die zu deserialisierende Variable ein Objekt ist, wird PHP nach der erfolgreichen Wiederherstellung des Objekts automatisch versuchen, die __wakeup()()-Methode aufzurufen (sofern diese existiert).

  > Hinweis: Die unserialize_callback_func-Direktive
  > Es ist möglich, eine Callback-Funktion anzugeben, die aufgerufen wird, wenn eine undefinierte Klasse während des Deserialisierens instanziiert werden soll (um dem Erhalt des unvollständigen object "__PHP_Incomplete_Class" vorzubeugen). Nutzen Sie Ihre php.ini, ini_set() oder .htaccess, um 'unserialize_callback_func' festzulegen. Jedesmal, wenn eine undefinierte Klasse instanziiert werden soll, wird diese Funktion aufgerufen. Um dieses Feature abzuschalten, muss die Einstellung nur ungefüllt sein.

### Rückgabewerte

Der konvertierte Wert wird zurückgegeben und kann vom Typ boolean, integer, float, string, array oder object sein.

Falls der übergebene Sting nicht deserialisierbar ist, wird `FALSE` zurück gegeben und E_NOTICE produziert.

### ChangeLog

Version | Beschreibung
--- | ---
4.2.0 | Die Direktive unserialize_callback_func steht zur Verfügung.
4.0.0 | Bei der Serialisierung eines Objekts gehen die Methoden nicht verloren. Lesen Sie dazu bitte den Abschnitt Objekte serialisieren.

### Beispiele

Beispiel #1 unserialize()-Beispiel

`<?php
// Als Beispiel benutzen wir unserialize(), um Daten aus einer Datenbank in das
// $session_data-Array zu laden. Das Beispiel vervollständigt das unter
// serialize() beschriebene.
$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn, "SELECT data FROM sessions WHERE id = ?");
$sqldata = array($_SERVER['PHP_AUTH_USER']);
if (!odbc_execute($stmt, &$sqldata) || !odbc_fetch_into($stmt, &$tmp)) {
// wenn execute oder fetch fehlschlägt, initialisiere ein leeres Array
$session_data = array();
} else {
// die serialisierten Daten sollten nun in $tmp[0] stehen.
$session_data = unserialize($tmp[0]);
if (!is_array($session_data)) {
// etwas ging schief, also wieder ein leeres Array initialisieren
$session_data = array();
}
}
?>`

Beispiel #2 unserialize_callback_func-Beispiel

`<?php
$serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';
// unserialize_callback_func Direktive ist ab PHP 4.2.0 verfuegbar
ini_set('unserialize_callback_func', 'mycallback'); // Festlegen der callback_function
function mycallback($classname)
{
// einfach ein File einbinden, dass die Klassendefinitionen enthaelt
// Sie erhalten $classname, womit Sie herausfinden koennen, welche
// Klassendefinition benoetigt wird
}
?>`

### Anmerkungen

Warnung

`FALSE` wird sowohl im Fehlerfall als auch bei einem serialisierten `FALSE`-Wert zurückgegeben. Es ist möglich, diesen speziellen Fall abzufangen, indem man `str` mit serialize(false) vergleicht oder prüft, ob ein E_NOTICE produziert wurde.

### Siehe auch

- serialize()

strval
unset
Funktionen zur Behandlung von Variablen
PHP Manual