igbinary_serialize
En esta página
igbinary_serialize
Genera una representación binaria almacenable y compacta de un valor
Descripción#
igbinary_serialize(mixed $value): string
```php
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.
## Parámetros
`value`
El valor a serializar. `igbinary_serialize` gestiona todos los tipos excepto los `recurso`s y ciertos `objeto`s (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()](#object.serialize) o [\_\_sleep()](#object.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()](#object.unserialize) o [\_\_wakeup()](#object.wakeup) es llamado.
> [!NOTE]
> 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.
## Valores devueltos
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`.
## Ejemplos
Ejemplo con `igbinary_serialize`
```php
El ejemplo anterior mostrará:
%00%00%00%02%14%02%06%00%11%04test%06%01%0E%00
array (
0 => 'test',
1 => 'test',
)
Notas#
[!NOTE] 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.
Véase también#
serialize
igbinary_unserialize
var_export
json_encode
Serialización de objetos
__sleep()
__wakeup()
__serialize()
__unserialize()