Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

PHP Serializable Interface

บทนำ

Interface Serializable มีอยู่ใน PHP library เพื่อสร้างคลาสที่ให้การ serialize แบบกำหนดเอง ฟังก์ชัน serialize() ของ PHP สามารถ serialize ค่าส่วนใหญ่ให้เป็น representation ที่เก็บได้ แต่ object ของ user-defined classes ไม่สามารถ serialize ได้ Interface นี้ทำให้เป็นไปได้

ไวยากรณ์

Serializable { abstract public serialize ( void ) : string abstract public unserialize ( string $serialized ) : void }

เมธอด

Serializable::serialize - String representation ของ object

Serializable::unserialize - สร้าง object จาก serialized string representation

Built-in serialize() function สร้าง representation ที่เก็บได้ของค่า

serialize ( mixed $value ) : string

unserialize() function สร้างค่า PHP จาก stored representation

unserialize ( string $str [, array $options ] ) : mixed

Serializable Example

ในตัวอย่างต่อไปนี้ ตัวแปรสตริงถูกใช้เป็น private property ของ myclass เมื่อ built-in serialize() function ใช้ object ของคลาสนี้เป็น argument เมธอด serialize() จะถูกเรียกอัตโนมัติ เช่นเดียวกัน unserialize() function จะสร้าง object ใหม่ด้วย string private property

ตัวอย่าง

<?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"