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