igbinary_serializeGenera una representación binaria almacenable y compacta de un valor
&reftitle.description;
stringfalseigbinary_serializemixedvalue
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.
&reftitle.parameters;
value
El valor a serializar. igbinary_serialize
gestiona todos los tipos excepto los recursos y ciertos objetos (confiere la nota a continuación).
Incluso los &array;x que contienen referencias a sí mismos pueden ser serializados con igbinary_serialize.
Las referencias circulares dentro de un &array; o de un &object; a serializar serán igualmente almacenadas.
Cualquier otra referencia será perdida.
Al serializar objetos, igbinary intentará llamar a los métodos mágicos
__serialize() o
__sleep() antes de la serialización.
Esto permitirá al objeto realizar una limpieza de último momento, etc., antes de ser serializado.
De igual manera, cuando el objeto es restaurado utilizando la función
igbinary_unserialize, uno de los métodos mágicos __unserialize()
o __wakeup() es llamado.
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.
&reftitle.returnvalues;
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.
&reftitle.examples;
Ejemplo con igbinary_serialize
]]>
&example.outputs;
'test',
1 => 'test',
)
]]>
&reftitle.notes;
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.
&reftitle.seealso;
serializeigbinary_unserializevar_exportjson_encodeSerialización de objetos__sleep()__wakeup()__serialize()__unserialize()