igbinary_serialize

(PECL igbinary >= 1.1.1)

igbinary_serializeGénère une représentation binaire stockable et compacte d'une valeur

Description

igbinary_serialize(mixed $value): string|false

Génère une représentation stockable d'une valeur.

C'est une technique pratique pour stocker ou passer des valeurs PHP entre scripts, sans perdre leur structure ni leur type.

Pour reconvertir la chaîne de caractères sérialisée en une valeur PHP, la fonction igbinary_unserialize() peut être utilisée.

Liste de paramètres

value

La valeur à sérialiser. igbinary_serialize() gère tous les types sauf les ressources et certains objets (confère la note ci-dessous). Même des tableaux qui contiennent des références à eux-même peuvent être sérialisé avec igbinary_serialize(). Les références circulaires à l'intérieur d'un tableau ou d'un objet à sérialiser seront également stockées. Toute autre référence sera perdue.

Lorsqu'il sérialise des objets, igbinary tentera d'appeler les méthodes magiques __serialize() ou __sleep() avant la sérialisation. Cela permettra à l'objet de faire un nettoyage de dernière minute, etc., avant d'être sérialisé. De même, lorsque l'objet est restauré en utilisant la fonction igbinary_unserialize(), une des méthodes magiques __unserialize() ou __wakeup() est appelée.

Note:

Les attributs privés d'un objet auront le nom de la classe préfixé au nom de l'attribut; les attributs protégés seront préfixés avec un astérisque '*'. Ces valeurs préfixées ont des caractères nuls des deux cotés.

Valeurs de retour

Retourne une chaîne de caractères contenant une représentation du paramètre value sous forme de flux d'octets qui peut être stocké à n'importe quel endroit.

Il est à noter que c'est une chaîne binaire qui peut inclure des caractères nuls, et doit donc être stockée et gérée comme telle. Par exemple, dans une base de données, la sortie de la fonction igbinary_serialize() doit, en général, être stockée dans un champ de type BLOB plutôt que dans un champ de type CHAR ou TEXT.

Exemples

Exemple #1 igbinary_serialize() example

Exemple #2 Exemple avec igbinary_serialize()

<?php
$ser
= igbinary_serialize(['test', 'test']);
echo
urlencode($ser), "\n";
var_export(igbinary_unserialize($ser));
?>

L'exemple ci-dessus va afficher :

%00%00%00%02%14%02%06%00%11%04test%06%01%0E%00
array (
  0 => 'test',
  1 => 'test',
)

Notes

Note:

Il est à noter que de nombreux objets internes de PHP ne peuvent pas être sérialisés. Cependant, ceux qui le peuvent implémentent soit l'interface Serializable soit les méthodes magiques __serialize()/__unserialize() ou __sleep()/__wakeup(). Si une classe interne ne remplit aucune de ces conditions, elle ne peut pas être sérialisée de manière fiable.

Il existe des exceptions historiques à cette règle, où des objets internes peuvent être sérialisés sans implémenter ni l'interface ni les méthodes magiques.

Voir aussi

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top