357 of 410 menu

Methode __serialize

Die magische Methode __serialize wird bei der Serialisierung eines Objekts durch die Funktion serialize aufgerufen. Sie sollte ein Array mit Daten zurückgeben, die serialisiert werden. Diese Methode wurde in PHP 7.4 als Alternative zur Methode __sleep mit einer flexibleren Steuerung des Serialisierungsprozesses eingeführt.

Syntax

public function __serialize(): array

Beispiel

Erstellen wir eine Klasse mit der Methode __serialize, die festlegt, welche Eigenschaften des Objekts serialisiert werden müssen:

<?php class User { public $name; private $password; public $email; public function __construct($name, $password, $email) { $this->name = $name; $this->password = $password; $this->email = $email; } public function __serialize(): array { return [ 'name' => $this->name, 'email' => $this->email, 'hash' => md5($this->password) ]; } } $user = new User('John', 'secret123', 'john@example.com'); echo serialize($user); ?>

Ergebnis der Codeausführung:

'O:4:"User":3:{s:4:"name";s:4:"John";s:5:"email";s:15:"john@example.com";s:4:"hash";s:32:"e5e9fa1ba31ecd1ae84f75caaa474f3a";}'

Beispiel

Demonstrieren wir den Unterschied zwischen __serialize und __sleep:

<?php class Product { public $id; protected $price; private $discount; public function __sleep() { return ['id', 'price']; } public function __serialize(): array { return [ 'id' => $this->id, 'price' => $this->price * (1 - $this->discount) ]; } } $product = new Product(); $product->id = 100; $product->price = 50; $product->discount = 0.1; echo "Sleep: " . serialize($product) . "\n"; echo "Serialize: " . serialize($product); ?>

Ergebnis der Codeausführung:

'Sleep: O:7:"Product":2:{s:2:"id";i:100;s:5:"price";i:50;}' 'Serialize: O:7:"Product":2:{s:2:"id";i:100;s:5:"price";d:45;}'

Siehe auch

  • die Funktion serialize,
    die einen Wert in eine speicherbare Zeichenkette umwandelt
Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen