(PHP 8 >= 8.2.0)
DateTime::__unserialize -- DateTimeImmutable::__unserialize -- DateTimeInterface::__unserialize — Désérialise un DateTime
Le gestionnaire __unserialize().
dataL'objet DateTime sérialisé.
Aucune valeur n'est retournée.
Exemple #1 Exemple de DateTime::__unserialize()
<?php
class CustomDateTimeImmutable extends DateTimeImmutable
{
#[\Override]
public function __unserialize(array $data): void
{
echo "Time to `{$data['to']}`:\n\n";
parent::__construct($data['date'], new DateTimeZone($data['timezone']));
}
}
$serializedData = 'O:23:"CustomDateTimeImmutable":4:{s:4:"date";s:25:"2025-03-27T00:00:00+00:00";s:9:"timestamp";i:1743033600;s:8:"timezone";s:3:"UTC";s:2:"to";s:21:"Drink a cup of coffee";}';
var_dump(unserialize($serializedData));L'exemple ci-dessus va afficher :
Time to `Drink a cup of coffee`:
object(CustomDateTimeImmutable)#1 (3) {
["date"]=>
string(26) "2025-03-27 00:00:00.000000"
["timezone_type"]=>
int(1)
["timezone"]=>
string(6) "+00:00"
}
Une Error est levée lors de la tentative de désérialisation d'un objet DateTime personnalisé si __serialize() est défini mais que __unserialize() est absent.