Phương thức __unserialize
Phương thức __unserialize được tự động gọi khi giải tuần tự hóa một đối tượng
bằng hàm unserialize. Nó nhận một mảng làm tham số,
mảng này chứa dữ liệu đã được chuẩn bị trước đó bởi phương thức __serialize.
Cú pháp
public function __unserialize(array $data): void
Ví dụ
Tạo một lớp với các phương thức __serialize và __unserialize:
<?php
class User {
private $name;
private $age;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
public function __serialize(): array {
return ['name' => $this->name, 'age' => $this->age];
}
public function __unserialize(array $data): void {
$this->name = $data['name'];
$this->age = $data['age'];
}
public function getInfo() {
return $this->name . ', ' . $this->age;
}
}
$user = new User('John', 30);
$serialized = serialize($user);
$unserialized = unserialize($serialized);
echo $unserialized->getInfo();
?>
Kết quả thực thi mã:
'John, 30'
Ví dụ
Sử dụng __unserialize với các thuộc tính private:
<?php
class Product {
private $id;
private $price;
public function __construct($id, $price) {
$this->id = $id;
$this->price = $price;
}
public function __serialize(): array {
return ['id' => $this->id, 'price' => $this->price];
}
public function __unserialize(array $data): void {
$this->id = $data['id'];
$this->price = $data['price'];
}
public function getPrice() {
return $this->price;
}
}
$product = new Product(123, 99.99);
$serialized = serialize($product);
$unserialized = unserialize($serialized);
echo $unserialized->getPrice();
?>
Kết quả thực thi mã:
99.99
Xem thêm
-
phương thức
__serialize,
chuẩn bị đối tượng để tuần tự hóa -
hàm
serialize,
chuyển đổi đối tượng thành chuỗi