(PHP 8 >= 8.2.0)
DateTime::__unserialize -- DateTimeImmutable::__unserialize -- DateTimeInterface::__unserialize — Unserialize an Datetime
The __unserialize() handler.
dataThe serialized DateTime.
没有返回值。
示例 #1 DateTime::__unserialize() example
<?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));以上示例会输出:
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"
}
An Error is thrown when attempting to unserialize a custom DateTime object if __serialize() is defined but __unserialize() is missing.