(PECL igbinary >= 1.1.1)
igbinary_serialize — Generates a compact, storable binary representation of a value
Generates a storable representation of a value.
This is useful for storing or passing PHP values around without losing their type and structure.
To make the serialized string into a PHP value again, igbinary_unserialize() can be used.
valueNote: Private members of objects have the class name prepended to the member name; protected members have a
'*'prepended to the member name. These prepended values have null bytes on either side.
Returns a string containing a byte-stream representation of
value that can be stored anywhere.
Note that this is a binary string which can include any byte value, and needs
to be stored and handled as such. For example,
igbinary_serialize() output should generally be stored in a BLOB
field in a database, rather than a CHAR or TEXT field.
Example #1 igbinary_serialize() example
<?php
$ser = igbinary_serialize(['test', 'test']);
echo urlencode($ser), "\n";
var_export(igbinary_unserialize($ser));
?>The above example will output:
%00%00%00%02%14%02%06%00%11%04test%06%01%0E%00 array ( 0 => 'test', 1 => 'test', )
Note: Note that many built-in PHP objects cannot be serialized. However, those with this ability either implement the Serializable interface or the magic __serialize()/__unserialize() or __sleep()/__wakeup() methods. If an internal class does not fulfill any of those requirements, it cannot reliably be serialized with any serializer. There are some historical exceptions to the above rule, where some internal objects could be serialized without implementing the interface or exposing the methods.