查询

unserialize()函数—用法及示例

「 将存储在字符串中的 PHP 表示形式转换回 PHP 的值 」


函数名称:unserialize()

适用版本:PHP 4, PHP 5, PHP 7

函数描述:unserialize() 函数将存储在字符串中的 PHP 表示形式转换回 PHP 的值。

语法:mixed unserialize ( string $str [, array $options ] )

参数:

  • $str:必需,要反序列化的字符串。
  • $options:可选,一个关联数组,用于指定反序列化过程的选项。目前支持的选项有:
    • 'allowed_classes':指定允许反序列化的类的白名单。默认情况下,所有类都是允许的。
    • 'object_to_array':将对象转换为数组。默认情况下,对象将被还原为它们的原始类。

返回值:反序列化后的值,如果反序列化失败则返回 false。

示例:

// 反序列化字符串
$data = 'a:2:{i:0;s:5:"apple";i:1;s:6:"orange";}';
$result = unserialize($data);
var_dump($result);
// 输出:array(2) { [0]=> string(5) "apple" [1]=> string(6) "orange" }

// 反序列化对象
class Fruit {
    public $name;
    public function __construct($name) {
        $this->name = $name;
    }
}

$data = 'O:5:"Fruit":1:{s:4:"name";s:5:"apple";}';
$result = unserialize($data);
var_dump($result);
// 输出:object(Fruit)#1 (1) { ["name"]=> string(5) "apple" }

注意事项:

  • unserialize() 函数在反序列化时可能会触发 PHP 的自动加载机制,如果类未定义或无法自动加载,则会导致反序列化失败。
  • 为了安全起见,应该仅反序列化可信任的数据,避免反序列化来自不可信任来源的数据,以防止代码执行漏洞。
补充纠错
上一个函数: unset()函数
热门PHP函数
分享链接