(PECL igbinary >= 1.1.1)
igbinary_serialize — Genera una representación binaria almacenable y compacta de un valor
Genera una representación almacenable de un valor.
Es una técnica práctica para almacenar o pasar valores PHP entre scripts, sin perder su estructura ni su tipo.
Para reconvertir la cadena sérializada en un valor PHP, la función igbinary_unserialize() puede ser utilizada.
valueNota: Los atributos privados de un objeto tendrán el nombre de la clase prefijado al nombre del atributo; los atributos protegidos serán prefijados con un asterisco
'*'. Estos valores prefijados tienen caracteres nulos en ambos lados.
Retorna una cadena de caracteres que contiene una representación del parámetro value
en forma de flujo de bytes que puede ser almacenado en cualquier lugar.
Es de notar que es una cadena binaria que puede incluir caracteres nulos, y debe por lo tanto ser almacenada y gestionada como tal.
Por ejemplo, en una base de datos, la salida de la función igbinary_serialize()
debe, en general, ser almacenada en un campo de tipo BLOB
en lugar de en un campo de tipo CHAR o TEXT.
Ejemplo #1 Ejemplo con igbinary_serialize()
<?php
$ser = igbinary_serialize(['test', 'test']);
echo urlencode($ser), "\n";
var_export(igbinary_unserialize($ser));
?>El ejemplo anterior mostrará:
%00%00%00%02%14%02%06%00%11%04test%06%01%0E%00 array ( 0 => 'test', 1 => 'test', )
Nota: Es de notar que muchos objetos internos de PHP no pueden ser serializados. Sin embargo, aquellos que pueden implementan ya sea la interfaz Serializable o los métodos mágicos __serialize()/__unserialize() o __sleep()/__wakeup(). Si una clase interna no cumple ninguna de estas condiciones, no puede ser serializada de manera fiable. Existen excepciones históricas a esta regla, donde objetos internos pueden ser serializados sin implementar ni la interfaz ni los métodos mágicos.