php序列化與反序列化

php的序列化&反序列化對與一些大文件的壓縮操作,讀寫操作十分有用。

一個簡單的序列化案例

同時用到了序列化與反序列化函數,二者在被調用時會分別自己調用對應的函數,__sleep 以及__wakeup.

<?php
/*
__sleep和__wakeup練習題:

故事:一個果農生產了很多水果種類,於是需要把一個買家指定的種類寄給他,生產的日期和寄給買家的日期

水果類(幾個成員,蘋果種類,雪梨種類,西瓜種類)

----------------------------
fruit.class.php(__sleep和__wakeup)
buy.php
pass.php
/////////三個文件都同時寫在index.php裏
*/
class Fruit{
	private $apple;
	private $banana;
	private $xigua;
	private $xuanli;
	private $date;
	
	function __construct($apple, $banana, $xigua, $xueli, $date ="1.26"){
		$this->apple = $apple;
		$this->banana = $banana;
		$this->xigua = $xigua;
		$this->xueli = $xueli;
		$this->date = $date;
		
	}
	function getInfo(){
		echo "信息如下:".$this->apple."&&&".$this->banana."&&&".$this->xigua."&&&".$this->xueli."<br />生產日期"."&&&".$this->date;
	}
	
	function __sleep(){
		$info = array("apple","xueli","xigua","date");
		return $info;
	}
	function __wakeup(){
		$this->date = "2.20";
	
	}
}
//1
//$fruit = new Fruit("蘋果","香蕉","西瓜","雪梨");
//$fruit->getInfo();

//2
echo "<br />擁有的水果:<br />";
$fruit = new Fruit("蘋果","香蕉","西瓜","雪梨");

$str = serialize($fruit);
$fruit->getInfo();
file_put_contents('fruit.txt',$str);


echo "<hr />";
$stri =file_get_contents('fruit.txt');
$shuiguo = unserialize($stri);
$shuiguo->getInfo();

發佈了23 篇原創文章 · 獲贊 4 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章