PHP:unserialize()不';不返回数组
下面的代码用于在字段中插入序列化数据(顺序图片): 我第一次执行它时,它工作正常。至少,它存储PHP:unserialize()不';不返回数组,php,serialization,Php,Serialization,下面的代码用于在字段中插入序列化数据(顺序图片): 我第一次执行它时,它工作正常。至少,它存储b:0 但是当我再次执行它时,$pictures\u id的值是bool(false),我希望是数组类型 有什么想法吗 问候 Javi您的问题是,您试图在$category->getOrderPictures()的内容初始化之前对其进行非序列化,因此$pictures\u id在其中得到布尔值false,这是非序列化失败的结果。然后,array\u push()失败,因为$pictures\u id不是
b:0在order_pictures
字段中选择code>
但是当我再次执行它时,$pictures\u id
的值是bool(false)
,我希望是数组类型
有什么想法吗
问候
Javi您的问题是,您试图在$category->getOrderPictures()
的内容初始化之前对其进行非序列化,因此$pictures\u id
在其中得到布尔值false
,这是非序列化
失败的结果。然后,array\u push()
失败,因为$pictures\u id
不是数组
试试这个:
$pictures_id = $category->getOrderPictures();
if($pictures_id)
$pictures_id = unserialize($pictures_id);
else
$pictures_id = array();
array_push($pictures_id, $picture->getId());
$category->setOrderPictures(serialize($pictures_id));
我第一次执行它时,它工作正常。至少,它存储b:0
就是这样:b:0
不是数组,而是布尔值(false
)
取消PHPs交互模式(php-a
)
这意味着,在将序列化放入数据库之前,它可能会给您带来意外的结果。当从数据库中读取时,一切正常,但内容不是您所表达的内容。var\u dump($pictures\u id)代码>请查看它所说的var_dump(取消序列化($category->getOrderPictures())代码>?返回b:0代码>或长字符串?var_dump($category->getOrderPictures());请严肃地说,您没有提供足够的数据来解决您的问题。var_dump(unserialize($category->getOrderPictures())代码>请。对长弦特别感兴趣。
$pictures_id = $category->getOrderPictures();
if($pictures_id)
$pictures_id = unserialize($pictures_id);
else
$pictures_id = array();
array_push($pictures_id, $picture->getId());
$category->setOrderPictures(serialize($pictures_id));
php > var_dump(unserialize('b:0;'));
bool(false)
php > var_dump(serialize(false));
string(4) "b:0;"