แนะนำตัว
ซีเรียลไลซ์ได้ อินเทอร์เฟซมีอยู่ในไลบรารี PHP เพื่อสร้างคลาสที่จัดทำ serialzing ที่ปรับแต่งได้ ทำให้เป็นอนุกรม()ของ PHP ฟังก์ชันสามารถเรียงลำดับค่าส่วนใหญ่ให้เป็นค่าแทนค่าที่จัดเก็บได้ อย่างไรก็ตาม อ็อบเจ็กต์ของคลาสที่กำหนดโดยผู้ใช้ไม่สามารถทำให้เป็นอนุกรมได้ อินเทอร์เฟซนี้ทำให้เป็นไปได้
ไวยากรณ์
Serializable {
/* Methods */
abstract public serialize ( void ) : string
abstract public unserialize ( string $serialized ) : void
} วิธีการ
ซีเรียลไลซ์ได้::ซีเรียลไลซ์ — การแสดงสตริงของอ็อบเจ็กต์
ซีเรียลไลซ์ได้::ไม่ซีเรียลไลซ์ — สร้างอ็อบเจ็กต์จากการแทนค่าสตริงแบบอนุกรม
ในตัว serialze() ฟังก์ชั่นสร้างการแสดงค่าที่จัดเก็บได้
serialize ( mixed $value ) : string
unserialize() ฟังก์ชั่นสร้างค่า PHP จากการแสดงที่เก็บไว้
unserialize ( string $str [, array $options ] ) : mixed
ตัวอย่างที่เรียงลำดับได้
ในตัวอย่างต่อไปนี้ ตัวแปรสตริงถูกใช้ในพร็อพเพอร์ตี้ส่วนตัวของ myclass เมื่อฟังก์ชัน serialize() ในตัวใช้วัตถุของคลาสนี้เป็นอาร์กิวเมนต์ เมธอด serialize() จะถูกเรียกโดยอัตโนมัติ ในทำนองเดียวกัน ฟังก์ชัน unserialize() จะสร้างวัตถุขึ้นใหม่ด้วยคุณสมบัติ string prvate
ตัวอย่าง
<?php
class myclass implements Serializable {
private $arr;
public function __construct() {
$this->arr = "TutorialsPoint India (p) Ltd";
}
public function serialize() {
echo "Serializing object..\n";
return serialize($this->arr);
}
public function unserialize($data) {
echo "Unserializing object..\n";
$this->arr = unserialize($data);
}
public function getdata() {
return $this->arr;
}
}
$obj = new myclass;
$serobj = serialize($obj);
var_dump ($serobj);
$obj1 = unserialize($serobj);
var_dump($obj1->getdata());
?> ผลลัพธ์
โปรแกรมด้านบนแสดงผลลัพธ์ต่อไปนี้
Serializing object..
string(55) "C:7:"myclass":36:{s:28:"TutorialsPoint India (p) Ltd";}"
Unserializing object..
string(28) "TutorialsPoint India (p) Ltd"