PHP kézikönyv
Előző |  | Következő

# unserialize

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

unserialize -- PHP értéket állít elő egy kódolt karaktersorozatból

## Leírás

mixed unserialize ( string str )

Az unserialize() egy szerializált értéket vár, (lásd a serialize() függvényt) és visszaalakítja PHP értékké azt. Az átalakított értéket adja vissza, ami lehet integer, float, string, array vagy object típusú.

> Megjegyzés: Definiálhatsz egy callback függvényt, amit a PHP akkor hív meg, ha egy nemlétező osztályból kell példányt létrehoznia a deszerializáció során. Erre akkor lehet szükség, ha nem szeretnél egy tökéletlen "__PHP_Incomplete_Class" objektumot kapni. Használd a `php.ini`, ini_set() vagy .htaccess segítségével beállítható 'unserialize_callback_func' értéket a függvény beállítására. Minden alkalommal, amikor egy nem definiált osztályból kell példányt létrehozni, ezt a függvényt fogja a PHP meghívni. Ha ki szeretnéd kapcsolni ezt a szolgáltatást, állítsd üresre ezt a beállítást.

Példa 1. unserialize_callback_func példa

`$szerializalt_obj='O:1:"a":1:{s:5:"value";s:3:"100";}'; ini_set('unserialize_callback_func','mycallback'); // saját callback függvény function mycallback($osztaly_neve) { // Itt be tudod tölteni azt a külső állományt, ami az // osztály definícióját tartalmazza. Az osztály nevét // kapod paraméterül, az alapján dönthetsz. }`

> Megjegyzés: A PHP 3-ban az objektum tulajdonságok szerializálódnak, de a metódusok elvesznek. A PHP 4-esben ilyen probléma nem lép fel. Lásd az objektumok szerializációja részt a Osztályok, objektumok című fejezetben.

Példa 2. unserialize() példa

`// Itt az unserialize() függvényt használjuk, miután az adatbázisból
// lekérdeztük a munkamenet adatot a $munkamenet_adat változóba.
// Ez a példa kiegészíti a serialize() példáját.
$conn = odbc_connect ("webdb", "php", "csirke");
$stmt = odbc_prepare ($conn, "SELECT adat FROM munkamenetek WHERE id = ?");
$sqladat = array ($PHP_AUTH_USER);
if (!odbc_execute ($stmt, &$sqladat) || !odbc_fetch_into ($stmt, &$tmp)) {
// Ha az execute() vagy a fetch() hibás, üres tömböt veszünk
$munkamenet_adat = array();
} else {
// Most már a deszerializált adatokat a $tmp[0]-ban találjuk
$munkamenet_adat = unserialize($tmp[0]);
if (!is_array($munkamenet_adat)) {
// Valami rosszul ment, üres tömböt veszünk
$munkamenet_adat = array();
}
}`

Lásd még serialize().

Előző | Tartalom | Következő
strval | Fel | unset