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

phppublic function __unserialize(array $data): void

Voorbeeld

Laten we een klasse maken met de methoden __serialize en __unserialize:

php<?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:

php'John, 30'

Voorbeeld

Gebruik van __unserialize met private eigenschappen:

php<?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:

php99.99

Zie ook

  • methode __serialize,
    die een object voorbereidt op serialisatie
  • functie serialize,
    die een object omzet in een string