public function PrintData()
{
echo 'User ' . $this->name . ' is ' . $this->age
. ' years old. <br />';
}
}
// 創(chuàng)建一個(gè)對(duì)象
$usr = new User();
// 設(shè)置數(shù)據(jù)
$usr->age = 20;
$usr->name = 'John';
// 輸出數(shù)據(jù)
$usr->PrintData();
// 輸出序列化之后的數(shù)據(jù)
echo serialize($usr);
?>
它會(huì)輸出
User John is 20 years old.
O:4:"User":2:{s:3:"age";i:20;s:4:"name";s:4:"John”;}
你可以看到序列化之后的數(shù)據(jù)中 有 20和John,其中沒(méi)有任何跟類有關(guān)的東西,只有其中的數(shù)據(jù)被數(shù)據(jù)化。
為了使用這個(gè)對(duì)象,我們用unserialize重建對(duì)象。
<?php
// 某類
class User
{
// Class data
public $age = 0;
public $name = '';
// Print data
public function PrintData()
{
echo 'User ' . $this->name . ' is ' . $this->age . ' years old. <br />';
}
}
User John is 20 years old
0x04 序列化magic函數(shù)
magic函數(shù)constructor (__construct)和 destructor (__destruct) 是會(huì)在對(duì)象創(chuàng)建或者銷毀時(shí)自動(dòng)調(diào)用,其他的一些magic函數(shù)會(huì)在serialize 或者 unserialize的時(shí)候被調(diào)用。