代码改变世界

PHP預定義接口---Serializable接口

2015-08-19 14:44  馬高  阅读(214)  评论(0)    收藏  举报

接口摘要:

1 Serializable  {
2     
3     /* 方法 */
4     abstract public string serialize  ( void ) //对象的字符串表示
5     abstract public mixed unserialize  ( string $serialized  ) // 构造对象
6     
7 }    

使用很简单,只要序列化对象时serialize方法会被调用,当反序列化时,unserialize方法被调用。

 

例子:

class ser implements Serializable {

    private $_data = null;

    public function __construct(array $data = null){
        $this->_data = $data;
    }

    public function serialize(){
        echo '正在序列化<br />';
        $data = $this->_data;
        return serialize($data);
    }

    public function unserialize($data){
        echo '正在反序列化<br />';
        $_data = unserialize($data);
        $this->_data = $_data;
    }

    public function get_data(){
        return $this->_data;
    }

}
    
$d1 = array('a'=>'a','b'=>'b');
$t1 = new ser($d1);
$s1 = serialize($t1);//正在序列化<br />
$o1 = unserialize($s1);//正在反序列化<br />

用途:在序列化對象時調用對象中的serialize方法,來處理數據。在反序列化時調用對象中的unserialize方法,來處理數據。
可以用在model層的數據封裝上。