Horde_Serialize::_unserialize PHP Метод

_unserialize() защищенный статический Метод

Unserialize data.
protected static _unserialize ( mixed &$data, mixed $mode, mixed $params = null ) : mixed
$data mixed The data to be unserialized.
$mode mixed The mode of unserialization. Can be either a single mode or array of modes. If array, will be unserialized in the order provided.
$params mixed Any additional parameters the unserialization method requires.
Результат mixed Unserialized data.
    protected static function _unserialize(&$data, $mode, $params = null)
    {
        switch ($mode) {
            case self::NONE:
                break;
            case self::RAW:
                $data = rawurldecode($data);
                break;
            case self::URL:
                $data = urldecode($data);
                break;
            case self::WDDX:
                $data = wddx_deserialize($data);
                break;
            case self::BZIP:
                // $params['small'] = Use bzip2 'small memory' mode?
                $data = bzdecompress($data, isset($params['small']) ? $params['small'] : false);
                break;
            case self::IMAP8:
                $data = quoted_printable_decode($data);
                break;
            case self::IMAPUTF7:
                $data = Horde_String::convertCharset(Horde_Imap_Client_Utf7imap::Utf7ImapToUtf8($data), 'UTF-8', 'ISO-8859-1');
                break;
            case self::IMAPUTF8:
                $data = Horde_Mime::encode($data);
                break;
            case self::BASIC:
                $data2 = @unserialize($data);
                // Unserialize can return false both on error and if $data is the
                // false value.
                if ($data2 === false && $data == serialize(false)) {
                    return $data2;
                }
                $data = $data2;
                break;
            case self::GZ_DEFLATE:
                $data = gzinflate($data);
                break;
            case self::BASE64:
                $data = base64_decode($data);
                break;
            case self::GZ_COMPRESS:
                $data = gzuncompress($data);
                break;
                // $params = Output character set
            // $params = Output character set
            case self::UTF7:
                $data = Horde_String::convertCharset($data, 'utf-7', $params);
                break;
                // $params = Output character set
            // $params = Output character set
            case self::UTF7_BASIC:
                $data = self::unserialize($data, array(self::BASIC, self::UTF7), $params);
                break;
            case self::JSON:
                $out = json_decode($data);
                if (!is_null($out) || strcasecmp($data, 'null') === 0) {
                    return $out;
                }
                break;
            case self::LZF:
                $data = @lzf_decompress($data);
                break;
        }
        if ($data === false) {
            throw new Horde_Serialize_Exception('Unserialization failed.');
        }
        return $data;
    }