📜  PHP | SplObjectStorage unserialize()函数(1)

📅  最后修改于: 2023-12-03 14:45:19.209000             🧑  作者: Mango

PHP | SplObjectStorage unserialize()函数

简介

SplObjectStorage 是一个用于存储对象的容器类,这个类实现了对储存的对象进行迭代和检索的能力。unserialize()函数可以从一个已经序列化的对象字符串中反序列化出一个 SplObjectStorage 对象。

语法
public void SplObjectStorage::unserialize ( string $serialized )
参数

serialized : 序列化前 SplObjectStorage 对象的字符串表示形式。

示例

下面是一个示例创建一个 SplObjectStorage 对象并序列化它,然后使用 unserialize() 反序列化出一个新的 SplObjectStorage 对象。

// 创建并填充 SplObjectStorage 对象
$storage = new SplObjectStorage();
$obj1 = new stdClass();
$obj2 = new stdClass();
$obj3 = new stdClass();
$storage->attach($obj1);
$storage->attach($obj2);
$storage->attach($obj3);

// 序列化 SplObjectStorage 对象
$serialized = serialize($storage);

// 反序列化 SplObjectStorage 对象
$unserialized = unserialize($serialized);

// 遍历反序列化后的 SplObjectStorage 对象
foreach ($unserialized as $obj) {
    echo get_class($obj) . "\n";
}

以上代码输出:

stdClass
stdClass
stdClass
注意事项
  • 反序列化出的 SplObjectStorage 和原对象是完全独立的,对其中任意一个对象的操作均不会影响到另一个对象。
  • 如果是从不受信任的源码接收序列化数据,请务必在反序列化前进行验证。