我正在做一些可能有点愚蠢的事情。我在cookie中保存了一个复杂的对象:
class CocheDTO
{
private $marca;
private $enlace;
private $modelo;
private $motor;
private $combustible;
private $cc;
//With getters and setters
}
我正在使用Serialize
方法发送一个cookie,其中包含序列化的复杂对象:
$this->cookiesManager->crearCookie("coche",serialize($coche),30);
我遇到的问题是我无法将序列化cookie“强制转换”回对象cookie。我用Java做过这个,但我想这是一种强大的类型编程语言有帮助。
这是我尝试反序列化的方式(我知道这是不可能的,但不确定如何'解析'类的所有属性。
unserialize($this->cookiesManager->obtenerCookie($nombreCookie));
不确定我是否可以使用PHP执行此操作。我阅读了有关使用__wakeup
的内容,但不确定如何使用它或如何访问序列化数据。
目前我遇到此错误:
可捕获的致命错误: CocheDTO类的对象无法转换为字符串
我知道这可能没有多大意义,因为我正在尝试序列化并在PHP中再次读取它(不使用BD)并且不使用JSON或xml来序列化它并从js读取,我只是想使用PHP方法序列化和反序列化,仅使用PHP。
回声序列化结果($ coche)
1O:8: “CocheDTO”:6:{S:15: “CocheDTOmarca”; S:4: “SEAT”; S:16: “CocheDTOenlace”; N; S:16: “CocheDTOmodelo”; S: 5: “IBIZA”; S:15: “CocheDTOmotor”; S:4: “4080”; S:21: “CocheDTOcombustible”; S:8: “gasolina”; S:12: “CocheDTOcc”; S:3: “110”;}
echo var_dump($ coche)
的结果> object(CocheDTO)[4] private 'marca' => string 'SEAT' (length=4)
> private 'enlace' => null private 'modelo' => string 'IBIZA'
> (length=5) private 'motor' => string '4080' (length=4) private
> 'combustible' => string 'gasolina' (length=8) private 'cc' => string
> '110' (length=3)
非常感谢。