(PHP 4, PHP 5, PHP 7)
unserialize — Creates a PHP value from a stored representation
unserialize() takes a single serialized variable and converts it back into a PHP value.
    Do not pass untrusted user input to unserialize() regardless
    of the options value of allowed_classes.
    Unserialization can result in code being loaded and executed due to object
    instantiation and autoloading, and a malicious user may be able to exploit
    this. Use a safe, standard data interchange format such as JSON (via
    json_decode() and json_encode()) if
    you need to pass serialized data to the user.
   
If you need to unserialize externally-stored serialized data, consider using hash_hmac() for data validation. Make sure data is not modified by anyone but you.
strThe serialized string.
If the variable being unserialized is an object, after successfully reconstructing the object PHP will automatically attempt to call the __unserialize() or __wakeup() methods (if one exists).
Note: unserialize_callback_func directive
It's possible to set a callback-function which will be called, if an undefined class should be instantiated during unserializing. (to prevent getting an incomplete object "__PHP_Incomplete_Class".) Use your php.ini, ini_set() or .htaccess to define unserialize_callback_func. Everytime an undefined class should be instantiated, it'll be called. To disable this feature just empty this setting.
optionsAny options to be provided to unserialize(), as an associative array.
| Name | Type | Description | 
|---|---|---|
| allowed_classes | mixed | Either an array of class names which should be
            accepted, FALSEto accept no classes, orTRUEto accept all
            classes. If this option is defined and
            unserialize() encounters an object of a class
            that isn't to be accepted, then the object will be instantiated as
            __PHP_Incomplete_Class instead.
           
           
            Omitting this option is the same as defining it asTRUE: PHP
            will attempt to instantiate objects of any class. | 
The converted value is returned, and can be a boolean, integer, float, string, array or object.
   In case the passed string is not unserializeable, FALSE is returned and
   E_NOTICE is issued.
  
| Version | Description | 
|---|---|
| 7.1.0 | The allowed_classes element of options) is now strictly typed, i.e. if anything
        other than an array or a boolean is given,
        unserialize() returnsFALSEand issues anE_WARNING. | 
| 7.0.0 | The optionsparameter has been added. | 
| 5.6.0 | Manipulating the serialised data by replacing C: with O: to force object instantiation without calling the constructor will now fail. | 
Example #1 unserialize() example
<?php
// Here, we use unserialize() to load session data to the
// $session_data array from the string selected from a database.
// This example complements the one described with 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)) {
    // if the execute or fetch fails, initialize to empty array
    $session_data = array();
} else {
    // we should now have the serialized data in $tmp[0].
    $session_data = unserialize($tmp[0]);
    if (!is_array($session_data)) {
        // something went wrong, initialize to empty array
        $session_data = array();
    }
}
?>
Example #2 unserialize_callback_func example
<?php
$serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';
ini_set('unserialize_callback_func', 'mycallback'); // set your callback_function
function mycallback($classname) 
{
    // just include a file containing your class definition
    // you get $classname to figure out which class definition is required
}
?>
    FALSE is returned both in the case of an error and if unserializing
    the serialized FALSE value. It is possible to catch this special case by
    comparing str with
    serialize(false) or by catching the issued
    E_NOTICE.