これは、phpでオブジェクトをシリアル化および非シリアル化することを理解するための簡単な例です。シリアル化を使用してオブジェクトを文字列に変換し、他のページでシリアル化を解除した後、このオブジェクトの現在のステータス(値の割り当てを含む)を使用します。
c.php
<?php class A {
public $one ;
public function A($val) {
$this->one=$val;
// echo $this->one;
}
function display(){
echo $this->one;
}
}
?>
c.phpファイルにはAという名前のクラスがあります。
a.php
<?
require_once "c.php";
$ob= new A('by Pankaj Raghuwanshi : Object Searlization.');
$ob->display(); // Output is: by Pankaj Raghuwanshi : Object Searlization.
$s = serialize($ob);
// echo $s will show a string of an object
?>
<br><A href='b.php?s=<?=$s;?>'>B-file</a>
このオブジェクトをシリアル化して文字列に変換し、getメソッドを使用してこの文字列を別のページに渡します。
注:この文字列は、セッションの使用などのさまざまな方法で1つのページから別のページに渡すことができます。また、DBに保存して別のページをフェッチし、テキストファイルに保存することができます。
このオブジェクトを別のファイル名でアンシリアル化しますb.php
b.php
<?
require_once "c.php";
$ob = unserialize($_GET[s]);
$ob->display();
// Output is: by Pankaj Raghuwanshi : Object Searlization.
?>
シリアル化を解除した後も、a.phpファイルと同じ動作を示し、a.phpの値を割り当てるオブジェクトは、オブジェクトのメモリに残ります。多くのhttpリクエストの後にこのオブジェクトのシリアル化を解除する場合。オブジェクトは、すべての割り当て値をメモリに保持します。