這篇文章主要介紹了PHP中序列化用法,結合執行個體形式分析了php使用serialize與unserialize函數實現序列化與反序列化操作的相關技巧,需要的朋友可以參考下
功能:序列化用於對對象的儲存或者傳輸,通過反序列化得到這個對象。
1. Person.class.php:
<?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. 序列化代碼
<?php require("./Person.class.php"); $p = new Person(21,"du","man"); //定義Person類對象 $pString = serialize($p); //對對象進行序列化 file_put_contents("./file.txt",$pString);//存到檔案裡
3. 反序列化代碼
<?php require("./Person.class.php");//反序列化時,也要包含原類 $pString = file_get_contents("./file.txt");//從檔案中取出序列化的值 $p = unserialize($pString);//進行反序列化 var_dump($p); //這個 $p就是之前那個序列化的對象,一樣用,但是裡面的值被我改了
以上就是本文的全部內容,希望對大家的學習有所協助。