我在数据库中序列化了值,然后当我这样做时,我从数据库中获取它们
<pre>
print_r($DataValues)
</pre>
它向我展示了这样的价值
[0] => stdClass Object
(
[categories] => a:1:{i:38;s:21:"Summer Market Session";}
)
[1] => stdClass Object
(
[categories] => a:1:{i:38;s:21:"Summer Market Session";}
)
[2] => stdClass Object
(
[categories] => a:2:{i:38;s:21:"Summer Market Session";i:39;s:21:"Autumn Market Session";}
)
我只想在反序列化后获取值,我试图反序列化但显示 bolean 假
当我尝试在为每个值运行后打印值时,它会显示下面提到的错误
可捕获的致命错误:无法将类 stdClass 的对象转换为字符串
我不知道我是怎么做到的,我正在尝试我所知道的所有反序列化策略,我也试图通过使用 foreach 循环将值存储在数组中,但我失败了。
请帮助我如何在解开它后获得它的价值...??
好吧,不知何故,我仍然看不到问题。我已经用这个重建了你似乎从数据库得到的数据结构:
$testObject = new stdClass();
$testCategories = array(38 => 'Summer Market Session');
$testObject->categories = serialize($testCategories);
$anotherTestObject = new stdClass();
$anotherTestCategories = $testCategories;
$anotherTestCategories[] = 'Autumn Market Session';
$anotherTestObject->categories = serialize($anotherTestCategories);
$dataValues = array(
$testObject, clone $testObject, $anotherTestObject
);
print_r($dataValues);
它给了我你在问题中引用的相同输出,所以我想这是一个正确的重建。要解开这些数据,简单的循环就足够了:
foreach ($dataValues as $dataElement) {
$categories = unserialize($dataElement->categories);
print_r($categories);
}
还是我做错了什么?
无论如何,这里有一个沙盒来检查所有这些。