(PHP 4, PHP 5)
unserialize — Creează o valoare PHP dintr-o reprezentare stocată
unserialize() preia o singură variabilă serializată și o convertește invers într-o valoare PHP.
str
String-ul serializat.
Dacă variabila ce se deserializează este un obiect, după ce se reconstituie cu succes, PHP automat va încerca să apeleze funcția-membru __wakeup() (dacă aceasta există).
Notă: directiva unserialize_callback_func
Este posibil de a stabili o funcție de apel invers ce se va apela când o clasă nedefinită trebuie instanțiată în timpul deserializării. (pentru a preveni obținerea unui object incomplet "__PHP_Incomplete_Class".) Utilizați php.ini, ini_set() sau .htaccess pentru a defini 'unserialize_callback_func'. De fiecare dată când o clasă nedefinită va trebui instanțiată, această funcție va fi apelată. Pentru a dezactiva această facilitate lăsați această opțiune vidă.
Valoarea convertită este întoarsă, și poate fi de tip boolean, integer, float, string, array sau object.
În caz că string-ul furnizat nu poate fi deserializat se va întoarce FALSE
și se va emite o eroare E_NOTICE
.
Versiunea | Descriere |
---|---|
4.2.0 | Directiva unserialize_callback_func a devenit disponibilă. |
Example #1 Exemplu unserialize()
<?php
// Aici vom utiliza unserialize() pentru a încărca datele sesiunii în tabloul
// $session_data din string-ul selectat dintr-o bază de date.
// Acest exemplu îl complementează pe cel descris în funcția serialize().
$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)) {
// dacă execute sau fetch eșuează, se inițializează un tablou vid
$session_data = array();
} else {
// acum trebuie să avem datele serializate în $tmp[0].
$session_data = unserialize($tmp[0]);
if (!is_array($session_data)) {
// ceva nu este în regulă, inițializează într-un tablou vid
$session_data = array();
}
}
?>
Example #2 Exemplu unserialize_callback_func
<?php
$serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';
// directiva unserialize_callback_func este disponibilă începând cu PHP 4.2.0
ini_set('unserialize_callback_func', 'mycallback'); // stabilește funcția de apel invers
function mycallback($classname)
{
// doar includeți un fișier ce conține definiția clasei
// veți lăsa ca $classname să-și dea seama care definiție a clasei este necesară
}
?>
FALSE
este întors atât în cazul unei erori, cât și în cazul deserializării
unei valori FALSE
serializate. Este posibil de a intercepta acest caz
special comparând str
cu
serialize(false) sau interceptând eroarea
E_NOTICE
emisă.