这是理解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 的类。
一个.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方法将这个字符串传递给另一个页面。
注意:我们可以使用会话等各种方法将此字符串从一页传递到另一页,我们可以保存到数据库并获取另一页,保存到文本文件中。
我们将在另一个文件名是 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 的赋值仍然在 object 的内存中。如果我们在多次 http 请求后反序列化这个对象。对象将在其内存中保留所有分配值。