Heim  >  Artikel  >  php教程  >  PHP中串行化的使用

PHP中串行化的使用

WBOY
WBOYOriginal
2016-08-20 08:47:221513Durchsuche
跳至 [1] [2] [3] [全屏预览]
<?
	/*
		作者 : shyhero
		邮箱 : shyhero@
		Q  Q : 1757424878

	 */
	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. [代码][PHP]代码     跳至 [1] [2] [3] [全屏预览]

<?
	require("./Person.class.php");

	$p = new Person(21,"du","man");	//定义Person类对象
	$pString = serialize($p);	//对对象进行串行化
	file_put_contents("./file.txt",$pString);//存到文件里

3. [代码][PHP]代码     跳至 [1] [2] [3] [全屏预览]

<?
	require("./Person.class.php");//反串行化时,也要包含原类

	$pString = file_get_contents("./file.txt");//从文件中取出串行化的值
	$p = unserialize($pString);//进行反串行化	
	var_dump($p);	//这个 $p就是之前那个串行化的对象,一样用,但是里面的值被我改了
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn