classa.inc: class A {var $one = 1; function show_one() {echo $this - one;}} page1.php: include("classa.inc"); $a = new A; $s = serialize($a); / / store $s somewhere where page2.php can find it. $fp = fopen("store", "w"); fputs($fp, $s); fclose($fp); page2.php: / / this is needed for the unserialize to work properly. include("classa.inc"); $s = implode("", @file("store")); $a = unserialize($s); / / now use the function show_one() of the $a object. $a - show_one();
オブジェクトの unserialize() を可能とするために、 そのオブジェクトのクラスが定義される必要があります。つまり、クラス Aのオブジェクト$aを page1.phpで定義し、これをシリアル化した場合、 クラスAを指す文字列が得られ、そこには、$aに含まれる変数の全ての値 が含まれます。page2.phpでこの文字列を非シリアル化したい場合、クラ スAの$aを再生します。クラスAの定義が、page2.phpに現れます。これは、 例えば、クラスAのクラス定義をインクルードファイルの中に保存し、 page1.php および page2.php の中で共にこのファイルを読み込むことに より実行可能です。