- unserialize: documentation ( source)
- serialize: documentation ( source)
<?php
class CustomDateTime extends \DateTime {}
$dts = serialize(new \DateTime());
$dtis = serialize(new \DateTimeImmutable());
$cdts = serialize(new \CustomDateTime());
echo get_class(unserialize($dts, ['allowed_classes' => [\DateTime::class]])) . PHP_EOL;
echo get_class(unserialize($dtis, ['allowed_classes' => [\DateTime::class]])) . PHP_EOL;
echo PHP_EOL;
echo get_class(unserialize($dts, ['allowed_classes' => [\DateTimeImmutable::class]])) . PHP_EOL;
echo get_class(unserialize($dtis, ['allowed_classes' => [\DateTimeImmutable::class]])) . PHP_EOL;
echo PHP_EOL;
echo get_class(unserialize($dts, ['allowed_classes' => [\DateTimeInterface::class]])) . PHP_EOL;
echo get_class(unserialize($dtis, ['allowed_classes' => [\DateTimeInterface::class]])) . PHP_EOL;
echo PHP_EOL;
echo get_class(unserialize($cdts, ['allowed_classes' => [\DateTime::class]])) . PHP_EOL;
echo get_class(unserialize($cdts, ['allowed_classes' => [\DateTime::class]])) . PHP_EOL;