Giới thiệu
Biểu diễn chuỗi (string representation) của bất kỳ object nào dưới dạng byte-stream được lấy bằng hàm serialize() trong PHP. Tất cả property variable của object được chứa trong chuỗi, method không được lưu. Chuỗi này có thể lưu trữ trong bất kỳ file nào.
Để khôi phục object từ byte stream, có hàm unserialize(). Định nghĩa class tương ứng phải có sẵn trước khi gọi unserialize().
Ví dụ
Serialize object và lưu file
<?php
class Test1 {
private $name;
function __construct($arg) {
$this->name = $arg;
}
}
$obj1 = new Test1("Kiran");
$str = serialize($obj1);
$fd = fopen("obj.txt", "w");
fwrite($fd, $str);
fclose($fd);
?>
File obj.txt được tạo trong thư mục hiện tại. Để unserialize, code sau tái tạo object từ byte stream đọc từ file:
Unserialize object
<?php
class Test1 {
private $name;
function __construct($arg) {
$this->name = $arg;
}
function getname() {
return $this->name;
}
}
$filename = "obj.txt";
$fd = fopen("obj.txt", "r");
$str = fread($fd, filesize($filename));
$obj = unserialize($str);
echo "name: " . $obj->getname();
?>
Kết quả
name: Kiran