Giới thiệu
Interface Serializable trong thư viện PHP dùng để xây dựng class cung cấp serialize tùy chỉnh. Hàm serialize() của PHP serialize được hầu hết giá trị thành biểu diễn lưu trữ. Tuy nhiên, đối tượng class do user định nghĩa không serialize được. Interface này làm cho việc đó trở nên khả thi.
Cú pháp
Serializable { abstract public serialize ( void ) : string abstract public unserialize ( string $serialized ) : void }Phương thức
- Serializable::serialize - Biểu diễn chuỗi của đối tượng.
- Serializable::unserialize - Khôi phục đối tượng từ chuỗi serialized.
Hàm tích hợp serialize() tạo biểu diễn lưu trữ:
serialize ( mixed $value ) : string
Hàm unserialize() tạo giá trị PHP từ biểu diễn lưu trữ:
unserialize ( string $str [, array $options ] ) : mixed
Ví dụ Serializable
Ví dụ dùng biến string private trong myclass. Khi serialize() tích hợp dùng đối tượng class này, serialize() tự động gọi. Tương tự unserialize() khôi phục đối tượng với thuộc tính string private.
Ví dụ
<?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()); ?>Kết quả
Serializing object.. string(55) "C:7:\"myclass\":36:{s:28:\"TutorialsPoint India (p) Ltd\";}" Unserializing object.. string(28) "TutorialsPoint India (p) Ltd"