NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"> 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, &$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() も参照下さい。