Methode __sleep

De methode __sleep wordt automatisch aangeroepen wanneer een object wordt geserialiseerd met de functie serialize. Deze methode moet een array met namen van eigenschappen retourneren die moeten worden opgenomen in de geserialiseerde weergave van het object.

Syntaxis

phppublic function __sleep(): array;

Voorbeeld

Laten we een klasse maken en de methode __sleep implementeren om alleen specifieke eigenschappen te serialiseren:

php<?php
class User {
  public $name = 'John';
  public $age = 30;
  private $password = '12345';
  
  public function __sleep() {
    return ['name', 'age'];
  }
}

$user = new User();
echo serialize($user);
?>

Resultaat van de code-uitvoering:

php'O:4:"User":2:{s:4:"name";s:4:"John";s:3:"age";i:30;}'

Voorbeeld

Gebruik van __sleep om vertrouwelijke gegevens uit te sluiten van serialisatie:

php<?php
class Account {
  public $login = 'admin';
  private $password = 'secret';
  public $email = 'admin@example.com';
  
  public function __sleep() {
    return ['login', 'email'];
  }
}

$account = new Account();
echo serialize($account);
?>

Resultaat van de code-uitvoering:

php'O:7:"Account":2:{s:5:"login";s:5:"admin";s:5:"email";s:17:"admin@example.com";}'

Zie ook

  • methode __wakeup,
    die wordt aangeroepen bij het deserialiseren van een object
  • functie serialize,
    die gegevens serialiseert