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