แนะนำตัว
ซีเรียลไลซ์ได้ อินเทอร์เฟซมีอยู่ในไลบรารี 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"