我用一个参数创建了一个 symfony2 命令。这个参数是 serialize($array) 函数的结果。
但是,在命令中我无法 unserialize() 收到的参数,我总是得到一个错误:
Notice: unserialize(): Error at offset 5 of 48 bytes in ...
这是我要发送到命令的数组示例:
$array = array('key1' => '$value1', 'key2' => '$value2')
当我序列化数组 (serialize($array)) 时,结果如下:
a:2:{s:4:"key1";s:7:"$value1";s:4:"key2";s:7:"$value2";}
我在想:也许问题是由于字符串中的双引号引起的(记住,是作为参数发送到命令),然后,我应用了 addlashes 函数:
addslashes(serialize($array))
这是结果:
a:2:{s:4:\"key1\";s:7:\"$value1\";s:4:\"key2\";s:7:\"$value2\";}
但是当我尝试反序列化命令 execute() 函数中的字符串时,我仍然收到相同的错误。
任何想法?