
En la unidad anterior aprendiste a usar la sesión del usuario para almacenar el estado de las variables, y poder recuperarlo cuando sea necesario. El proceso es muy sencillo; se utiliza el array superglobal $_SESSION
, añadiendo nuevos elementos para ir guardando la información en la sesión.
El procedimiento para almacenar objetos es similar, pero hay una diferencia importante. Todas las variables almacenan su información en memoria de una forma u otra según su tipo. Los objetos, sin embargo, no tienen un único tipo. Cada objeto tendrá unos atributos u otros en función de su clase. Por tanto, para almacenar los objetos en la sesión del usuario, hace falta convertirlos a un formato estándar. Este proceso se llama serialización.
En PHP, para serializar un objeto se utiliza la función serialize()
. El resultado obtenido es un string
que contiene un flujo de bytes
, en el que se encuentran definidos todos los valores del objeto.
$p = new Producto();
$a = serialize($p);
Esta cadena se puede almacenar en cualquier parte, como puede ser la sesión del usuario, o una base de datos. A partir de ella, es posible reconstruir el objeto original utilizando la función unserialize()
.
$p = unserialize($a);