Methode __sleep
Die Methode __sleep
wird automatisch aufgerufen, wenn ein Objekt mit der Funktion serialize
serialisiert wird. Diese Methode muss ein Array mit Eigenschaftsnamen zurückgeben, die in die serialisierte Darstellung des Objekts aufgenommen werden sollen.
Syntax
public function __sleep(): array;
Beispiel
Erstellen wir eine Klasse und implementieren die Methode __sleep
, um nur bestimmte Eigenschaften zu serialisieren:
<?php
class User {
public $name = 'John';
public $age = 30;
private $password = '12345';
public function __sleep() {
return ['name', 'age'];
}
}
$user = new User();
echo serialize($user);
?>
Ergebnis der Codeausführung:
'O:4:"User":2:{s:4:"name";s:4:"John";s:3:"age";i:30;}'
Beispiel
Verwendung von __sleep
, um vertrauliche Daten von der Serialisierung auszuschließen:
<?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);
?>
Ergebnis der Codeausführung:
'O:7:"Account":2:{s:5:"login";s:5:"admin";s:5:"email";s:17:"admin@example.com";}'