本文实例讲述了PHP中串行化用法。分享给大家供大家参考,具体如下:
功能:串行化用于对对象的存储或者传输,通过反串行化得到这个对象。
1. Person.class.php:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<?php
/*
作者 : shyhero
*/
class Person{ //声明一个Person类
public $age ;
private $name ;
protected $sex ;
public function __construct( $age = "" , $name = "" , $sex = "" ){
$this -> age = $age ;
$this -> name = $name ;
$this -> sex = $sex ;
}
public function say(){
return $this -> age. " " . $this -> name. " " . $this -> sex;
}
function __sleep(){ //指定串行化时能提取的成员属性,没有参数,但是必须返回一个数组
$arr = array ( "age" , "name" );
return $arr ;
}
function __wakeup(){ //指定反串行化时,提取出来的值
$this -> sex = "woman" ;
}
}
|
2. 串行化代码
1
2
3
4
5
|
<?php
require ( "./Person.class.php" );
$p = new Person(21, "du" , "man" ); //定义Person类对象
$pString = serialize( $p ); //对对象进行串行化
file_put_contents ( "./file.txt" , $pString ); //存到文件里
|
3. 反串行化代码
1
2
3
4
5
|
<?php
require ( "./Person.class.php" ); //反串行化时,也要包含原类
$pString = file_get_contents ( "./file.txt" ); //从文件中取出串行化的值
$p = unserialize( $pString ); //进行反串行化
var_dump( $p ); //这个 $p就是之前那个串行化的对象,一样用,但是里面的值被我改了
|
希望本文所述对大家PHP程序设计有所帮助。