igbinary_serialize
  コンパクト、かつ保存可能な値のバイナリ表現を生成する
  
 
  説明
  
   stringfalse igbinary_serialize(mixed $value)
  
  
   これは、値の型と構造を失うことなく、
   PHP の値を渡したり、保存したりする際に役立ちます。
  
  
   シリアライズ済みの PHP の文字列を再度 PHP の値に戻すには、
   igbinary_unserialize が使えます。
  
  
 
  パラメータ
  
   
    - 
value
- 
      
       シリアライズする値。
       igbinary_serialize
       は、resource 型やいくつかの
       object 型を除いた、全ての型を扱えます
       (下記を参照ください)。
       自分自身への参照を含む配列であっても、
       igbinary_serialize
       でシリアライズできます。
       シリアライズされる配列やオブジェクトにおける循環参照も保存されます。
       それ以外の参照は失われます。
       
       オブジェクトをシリアライズする場合、
       igbinary はメンバ関数
       __serialize()
       または
       __sleep() 
       をシリアライズする前にコールしようとします。
       これにより、オブジェクトはシリアライズされる直前に
       最終的なクリーンアップ処理などを行えます。
       同じように、
       igbinary_unserialize
       でオブジェクトを復元する際にも、
       __unserialize()
       または
       __wakeup()
       メンバ関数がコールされます。
       注意: 
        
        オブジェクトの private なメンバは、
        メンバの名前の前にクラス名が付加されます。
        protected なメンバは、
        メンバ名の前に '*'が付加されます。
        これらの先頭に付けられた値は、
        シリアライズ/アンシリアライズ 双方の側で、
        null バイトとして扱われます。
 
 
 
 
  戻り値
  
   任意の場所で保存できる 
   value のバイナリストリーム表現を含む、
   文字列を返します。
  
  
   ここで返される値は、バイト値を含みうるバイナリ文字列であり、
   そういうものとして扱う必要があります。
   たとえば、igbinary_serialize 
   の出力は、データベースでは一般的に 
   CHAR や TEXT ではなく、
   BLOB フィールドに保存する必要があります。
  
  
 
  例
  
   
    例1 igbinary_serialize の例
    
<?php
$ser = igbinary_serialize(['test', 'test']);
echo urlencode($ser), "\n";
var_export(igbinary_unserialize($ser));
?>
 
    
    
%00%00%00%02%14%02%06%00%11%04test%06%01%0E%00
array (
  0 => 'test',
  1 => 'test',
)
 
    
  
  
 
  注意
  注意: 
   
    多くの組み込みの PHP オブジェクトは、
    シリアライズできないことに注意して下さい。
    しかし、Serializable インターフェイスや、
    __serialize()/__unserialize()、
    マジックメソッド __sleep()/__wakeup()  を実装したオブジェクトは、
    シリアライズ可能です。
    内部クラスがこれらの要件を満たさない場合、
    どんなシリアライザであっても信頼できるやり方でシリアライズできません。
   
   
    上記のルールには、歴史的な例外が存在します。
    内部オブジェクトによっては、
    それらのインターフェイスやマジックメソッドがなくても、
    シリアライズできるものがありました。