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

# serialize

(PHP 3 >= 3.0.5, PHP 4, PHP 5)

serialize -- 値の保存可能な表現を生成する

## 説明

string serialize ( mixed value )

serialize() は、`value` の 保存可能なバイトストリーム表現を含む文字列を返します。

型や構造を失わずに PHP の値を保存または渡す際に有用です。

シリアル化された文字列を PHP の値に戻すには、 unserialize() を使用してください。 serialize() は、resource 以外の 全ての型を処理します。自分自身への参照を含む配列を serialize() することも可能です。 serialize() している配列/オブジェクト内の 循環参照も保存されます。その他の参照は失われます。

PHP は、シリアル化の前にまずメンバ関数 __sleep() のコールを試みます。ここで、シリアル化の前のオブジェクトの後始末処理 などを行います。同様に、unserialize() で オブジェクトを復元した際にはメンバ関数 __wakeup() がコールされます。

> 注意: これは 4.0.7 より前のバージョンでは正しく動作しません。

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

> PHP の組み込みオブジェクトをシリアル化することはできません。

例 1. serialize() の例

`<?php
// $session_data はカレントユーザーのセッション情報を含む多次元配列を
// 保持しています。リクエストの最後にこれをデータベースに保存するために
// serialize() を使用します。
$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn,
"UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $PHP_AUTH_USER);
if (!odbc_execute($stmt, &$sqldata)) {
$stmt = odbc_prepare($conn,
"INSERT INTO sessions (id, data) VALUES(?, ?)");
if (!odbc_execute($stmt, &$sqldata)) {
/* 何か問題があったようです.. */
}
}
?>`

unserialize() も参照ください。

前のページ | ホーム | 次のページ
print_r | 上に戻る | settype