355 of 410 menu

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";}'

Siehe auch

  • die Methode __wakeup,
    die bei der Deserialisierung eines Objekts aufgerufen wird
  • die Funktion serialize,
    die Daten serialisiert
bydeenesfrptru