在 PHP 会话中存储对象

phpserver side programmingprogramming更新于 2025/9/8 11:52:17

PHP 中的 serialize() 函数可在存储对象之前使用,而 unserialize() 函数可在需要从会话中检索对象时调用。

该函数将特定值的可存储表示转换为位序列。这样做的目的是,数据可以存储在文件、内存缓冲区或通过网络传输。

使用 serialize 函数存储对象 −

session_start();
$object = new sample_object();
$_SESSION['sample'] = serialize($object);

使用 ‘session_start’ 函数启动会话,并创建一个新对象。创建的对象将使用 ‘serialize’ 函数进行序列化。函数并赋值给 _SESSION 变量。

示例

<?php
$data = serialize(array("abc", "defgh", "ijkxyz"));
   echo $data;
?>

输出

这将产生以下输出 −

a:3:{i:0;s:3:"abc";i:1;s:5:"defgh";i:2;s:6:"ijkxyz";}

使用反序列化函数检索对象 −

session_start();
$object = unserialize($_SESSION['sample']);

与往常一样,会话使用 ‘session_start’ 函数开始,并且先前创建的对象(通过将其赋值给 _SESSION 变量进行序列化)使用 ‘unserialize’ 函数进行反序列化 −

示例

<?php
$data = serialize(array("abc", "defgh", "ijkxuz"));
echo $data . "<br>";
$test = unserialize($data);
var_dump($test);
?>

输出

这将产生以下输出 −

a:3:{i:0;s:3:"abc";i:1;s:5:"defgh";i:2;s:6:"ijkxuz";}
array(3) { [0]=> string(3) "abc" [1]=> string(5) "defgh" [2]=> string(6) "ijkxuz" }

相关文章