(PHP 8 >= 8.2.0)
DateTime::__unserialize -- DateTimeImmutable::__unserialize -- DateTimeInterface::__unserialize — Desserializa um Datetime
O manipulador __unserialize().
dataO DateTime serializado.
Nenhum valor é retornado.
Exemplo #1 Exemplo de DateTime::__unserialize()
<?php
class CustomDateTimeImmutable extends DateTimeImmutable
{
#[\Override]
public function __unserialize(array $data): void
{
echo "Hora de `{$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-03:00";s:9:"timestamp";i:1743033600;s:8:"timezone";s:17:"America/Sao_Paulo";s:2:"to";s:26:"tomar uma xícara de café";}';
var_dump(unserialize($serializedData));O exemplo acima produzirá:
Hora de `tomar uma xícara de café`:
object(CustomDateTimeImmutable)#1 (3) {
["date"]=>
string(26) "2025-03-27 00:00:00.000000"
["timezone_type"]=>
int(1)
["timezone"]=>
string(6) "-03:00"
}
Um Error é lançado ao tentar desserializar um objeto DateTime personalizado se __serialize() estiver definido, mas __unserialize() estiver ausente.