在PHP会话中存储对象

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

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

使用序列化功能存储对象-

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

通过使用“ session_start”函数启动会话,并创建一个新对象。创建的对象使用“序列化”功能进行序列化,并分配给_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" }