Manual PHP
Înapoi
Înainte
unserialize
Descriere
unserialize() primeşte ca parametru o singură variabilă liniarizată (vezi serialize()) şi o converteşte "înapoi "într-o variabilă PHP.
Este returnată valoarea convertită, care poate să aibă tipurile integer, float, string, array sau object.
Notã:
Este posibilă setarea unei funcţii callback ce va fi apelată dacă o clasă nedefinită trebuie instanţiată în timpul conversiei din forma liniară (pentru a preveni preluarea incompletă a unui object).
Se poate folosi php.ini, ini_set() sau un fisier .htaccess pentru a defini 'unserialize_callback_func '.
De câte ori o clasă trebuie instanţiată, se va apela această funcţie.
Pentru a dezactiva această facilitate, trebuie doar să ştergeţi această setare.
Exemplu 1.
Exemplu unserialize_callback_func
?php $serialized_object=' O:1 :"a":1 :{s:7 :"valoare";s:3 :"100" ;}'; ini_set('unserialize_callback_func' ,'mycallback'); / / setează callback_function function mycallback($classname) {/ / includeţi fişierul care conţine definiţia clasei / / se foloseşte $classname pentru a decide ce definiţie de clasă este vizată}?
Notã:
În PHP 3, metodele nu sunt păstrate când se foloseşte unserialize pentru un obiect.
PHP 4 elimină această limitare şi restaurează stât proprietăţile cât şi metodele.
Consultaţi secţiunea Serializarea obiectelor a capitolului Clase şi obiecte pentru mai multe informaţii.
Exemplu 2.
Exemplu pentru unserialize()
?php / / Aici se foloseşte unserialize() pentru a încărca datele unei sesiuni / / în $session_data dintr-un string selectat dintr-o bază de date. / / Acest exemplu este complementar celui pentru funcţia / / serialize. $conn = odbc_connect ("webdb", "php", "chicken"); $stmt = odbc_prepare ($conn, "SELECT data FROM sessions WHERE id = ?"); $sqldata = array ($PHP_AUTH_USER); if (!odbc_execute ($stmt, $sqldata) | | !odbc_fetch_into ($stmt, $tmp)) {/ / se iniţializează cu tablou vid în cazul in care execute sau fetch nu funcţionează $session_data = array();} else {/ / acum datele liniarizate sunt în $tmp[0]. $session_data = unserialize ($tmp[0]); if (!is_array ($session_data)) {/ / dacă ceva nu merge cum trebuie, se iniţializează cu tablou vid $session_data = array();}}?
Mai consultaţi: serialize().
Înapoi
Acasã
Înainte
Sus