PHPのオブジェクトをそのままファイルに保存して次回セッションにも使いまわしたい、ということが結構あります。
そんな時は、
serialize 関数です。
serialize($object);
とするとオブジェクトのメンバ変数等をシリアライズできます。
<?php
$a = new A;
echo serialize($a);
class A{
var $hash;
function A()
{
$this->hash = array(
"a"=>"b",
"c"=>"d",
"e"=>"f"
);
}
}
?>
O:1:"a":1:{s:4:"hash";a:3:{s:1:"a";s:1:"b";s:1:"c";s:1:"d";s:1:"e";s:1:"f";}}
が出力されます。
という感じに1行テキストに変換されます。
これならファイルに保存できますね。
元に戻すときは、
unserialize 関数を使います。
但し、注意したいのはオブジェクトのメソッドは保存されないということです。
コピーコンストラクタっぽいものを作ってオブジェクトに初期化させるとうまく行きそうです。
スポンサードリンク
もどる