DateTime::__unserialize

DateTimeImmutable::__unserialize

DateTimeInterface::__unserialize

(PHP 8 >= 8.2.0)

DateTime::__unserialize -- DateTimeImmutable::__unserialize -- DateTimeInterface::__unserializeПодготавливает данные для восстановления объекта даты и времени при десериализации

Описание

public function DateTime::__unserialize(array $data): void
public function DateTimeImmutable::__unserialize(array $data): void
public function DateTimeInterface::__unserialize(array $data): void

Метод __unserialize() обрабатывает данные промежуточного представления объекта даты и времени, аналогичные подготовленным методом DateTimeInterface::__serialize, для восстановления исходного объекта даты и времени при десериализации.

Список параметров

data

Параметр получает массив с данными представления объекта DateTime или другого объекта, совместимого с интерфейсом.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример обработки промежуточного представления объекта даты и времени методом 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));

Результат выполнения приведённого примера:

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"
}

Примечания

Внимание

При попытке десериализовать пользовательский объект DateTime выбрасывается ошибка Error, если метод __serialize() определили, а определение метода __unserialize() не добавили.

Смотрите также

  • DateTime::__serialize() - Подготавливает данные объекта даты и времени для сериализации
Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top