无法反序列化复杂的对象PHP

时间:2016-01-13 18:57:33

标签: php cookies serialization deserialization

我正在做一些可能有点愚蠢的事情。我在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)

非常感谢。

0 个答案:

没有答案