Methode __unserialize
De methode __unserialize wordt automatisch aangeroepen bij het deserialiseren van een object
met behulp van de functie unserialize. Als parameter accepteert het een array
met gegevens die eerder waren voorbereid door de methode __serialize.
Syntaxis
public function __unserialize(array $data): void
Voorbeeld
Laten we een klasse maken met de methoden __serialize en __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();
?>
Resultaat van de code-uitvoering:
'John, 30'
Voorbeeld
Gebruik van __unserialize met private eigenschappen:
<?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();
?>
Resultaat van de code-uitvoering:
99.99
Zie ook
-
methode
__serialize,
die een object voorbereidt op serialisatie -
functie
serialize,
die een object omzet in een string