PHP マニュアル
前のページ |  | 次のページ

# unserialize

(PHP 3>= 3.0.5, PHP 4 )

unserialize -- 保存用表現から PHP の値を生成する

## 説明

mixed unserialize ( string str)

unserialize() は、シリアル化された変数 (serialize() を参照) をとり、PHP 変数値に 戻す変換を行います。変換された値が返されます。その値は、 integer, float, string, array , object とすることが可能です。オブジェクトがシリアル化された場合、返り値 にそのメソッドは保存されていません。

> 注意 コールバック関数を設定することが可能です。(不完全な object "__PHP_Incomplete_Class"を得ることを防ぐため) コールバック関数は、非シリアル化する際に未定義のクラスをインスタ ンス化する必要がある場合にコールされます。 'unserialize_callback_func'を定義するためには、 php.ini, ini_set(), .htaccessファイルを使用し て下さい。未定義のクラスをインスタンス化する度に、コールバック関 数がコールされます。この機能を無効とするには、このグローバル変数 を空として下さい。

例 1unserialize_callback_funcの例
    $serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';

    ini_set('unserialize_callback_func','mycallback'); // set your callback_function

    function mycallback($classname) {
        // just include a file containing your classdefinition
        // you get $classname to figure out which classdefinition is required
    }

> 注意 PHP 3では、メソッドはシリアル化されたオブジェクトを非シリアル化 する際に保存されません。PHP 4ではこの制限は取り除かれ、プロパティ とメソッドの両方を保存します。より詳細な情報については、 オブジェクトとクラス の オブジェクトのシリア ル化の節を参照下さい。

例 2unserialize()の例
    // ここで、データベースから $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, &amp;$sqldata) || !odbc_fetch_into ($stmt, &amp;$tmp)) {
        // 実行または取得が失敗した場合、空の配列で初期化します
        $session_data = array();
    } else {
        // $tmp[0] にシリアル化されたデータを保持している必要があります。
        $session_data = unserialize ($tmp[0]);
        if (!is_array ($session_data)) {
            // 何か問題があったため、空の配列で初期化します。
            $session_data = array();
        }
    }

serialize()も参照下さい。

前のページ | ホーム | 次のページ
strval | 上に戻る | unset