unserialize
    (PHP 3 >= 3.0.5, PHP 4, PHP 5)
unserialize -- 保存用表現から PHP の値を生成する
説明
mixed 
unserialize ( string str )
     unserialize() は、シリアル化された変数
     (serialize() を参照) をとり、PHP 変数値に
     戻す変換を行います。変換された値が返されます。その値は、
     boolean, integer, float,
     string, array, object
     とすることが可能です。オブジェクトがシリアル化された場合、返り値
     にそのメソッドは保存されていません。
     E_NOTICE が発生した場合、FALSE を返します。
    
| 警告 | 
      エラーやシリアライズされた FALSE 値をアンシリアライズする場合、
      FALSE が返されます。この特殊なケースは
      str を serialize(false)
      で比較する、もしくは E_NOTICE
      をキャッチすることで区別することができます。
       | 
unserialize_callback_func ディレクティブ: 
      コールバック関数を設定することが可能です。(不完全な
      object "__PHP_Incomplete_Class"を得ることを防ぐため)
      コールバック関数は、非シリアル化する際に未定義のクラスをインスタ
      ンス化する必要がある場合にコールされます。
      'unserialize_callback_func'を定義するためには、
      php.ini, ini_set(), .htaccess を使用し
      てください。未定義のクラスをインスタンス化する度に、コールバック関
      数がコールされます。この機能を無効とするには、
      単純にこの設定を空にしてください。また、ディレクティブ
      unserialize_callback_func は PHP 4.2.0
      で利用可能になったことに注意してください。
     
     もしアンシリアライズサル変数がオブジェクトの場合、
     オブジェクトが無事再作成された後、PHP は自動的にメンバー関数
     __wakeup() (存在していれば) をコールしようとします。
     
例 1. unserialize_callback_funcの例 
<?php $serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';
  // unserialize_callback_func ディレクティブは PHP 4.2.0 以降で利用可能 ini_set('unserialize_callback_func', 'mycallback'); // 独自のコールバック関数を設定する
  function mycallback($classname) {     // just include a file containing your classdefinition     // you get $classname to figure out which classdefinition is required } ?>
 |  
  | 
    注意: 
      PHP 3では、メソッドはシリアル化されたオブジェクトを非シリアル化
      する際に保存されません。PHP 4ではこの制限は取り除かれ、プロパティ
      とメソッドの両方を保存します。より詳細な情報については、
      オブジェクトとクラス の
      オブジェクトのシリア
      ル化の節を参照ください。
     
     
例 2. unserialize()の例 
<?php // ここで、データベースから $session_data にセッションデータをロード // するために unserialize() を使用します。 // この例は、<function>serialize</function> で記述された例を補足するものです。
  $conn = odbc_connect("webdb", "php", "chicken"); $stmt = odbc_prepare($conn, "SELECT data FROM sessions WHERE id = ?"); $sqldata = array ($PHP_AUTH_USER); if (!odbc_execute($stmt, &$sqldata) || !odbc_fetch_into($stmt, &$tmp)) {     // 実行または取得が失敗した場合、空の配列で初期化します     $session_data = array(); } else {     // tmp[0] にシリアル化されたデータを保持している必要があります。     $session_data = unserialize($tmp[0]);     if (!is_array($session_data)) {         // 何か問題があったため、空の配列で初期化します。         $session_data = array();     } } ?>
 |  
  | 
    
     serialize()も参照ください。