unserialize
(PHP 3>= 3.0.5, PHP 4 , PHP 5)
unserialize --
Creează o variabilă PHP dintr-o reprezentare liniară
Descriere
mixed
unserialize ( string str)
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().