【发布时间】:2012-04-15 08:14:16
【问题描述】:
我无法理解 PHP 中序列化/反序列化的概念。
假设我有一个非常简单的 PHP 对象(类 someObject),并且在设置了该对象的属性后,我想序列化它:
所以我打电话给:serialize($someObject);
我想通过 html 表单将此序列化对象传输到另一个 php 脚本中,因此我将其设置为隐藏值:
<input type="hidden" name="someObject" value="<? print $someObject; ?>"
在下一个 php 脚本中,我想使用反序列化来取回我的对象并传输它,例如到数据库。
$unserialize = unserialize($_POST['someObject'])
但这总是返回 BOOL(false) - 那么我在这里缺少什么?
感谢您的帮助!
【问题讨论】:
-
好吧 .. 制作一个
var_dump( $_POST['someObject'] );并查看 .. 另外,您应该为此使用会话,而不是隐藏输入字段。 -
第二个脚本中 $_POST['someObject'] 包含什么?
-
我不知道序列化字符串不会包含
"的任何保证,如果包含,生成的 HTML 将被破坏。如果 unserialize() 不能反序列化对象,会返回false -
当我 var_dump 得到 BOOL(false)
标签: php html forms serialization