(PHP 8 >= 8.4.0)
ReflectionClass::resetAsLazyProxy — Сбрасывает и помечает объект ленивым
$object, callable $factory, int $options = 0): voidПоведение метода аналогично методу ReflectionClass::resetAsLazyGhost(), за исключением того, что этот метод использует стратегию прокси.
Объект в аргументе object становится прокси. По аналогии с методом
ReflectionClass::resetAsLazyGhost() объект
не заменяется другим объектом и сохраняет идентификатор даже после инициализации.
Ленивый прокси и реальный экземпляр — разные объекты,
с разными идентификаторами.
objectНеленивый объект или инициализированный ленивый объект.
factoryФабричная callback-функция с теми же сигнатурой и целью, что и в описании метода ReflectionClass::newLazyProxy().
options
Параметр options принимает комбинацию следующих
флагов:
ReflectionClass::SKIP_INITIALIZATION_ON_SERIALIZE
По умолчанию сериализация ленивого объекта запускает его инициализацию. Установка этого флага предотвращает инициализацию, что разрешает сериализовать ленивые объекты без инициализации.
ReflectionClass::SKIP_DESTRUCTOR
По умолчанию деструктор объекта, — если деструктор определили в классе, — вызывается раньше, чем метод сделает объект ленивым. Это обеспечивает безопасность в отношении предыдущих состояний объекта. Этот флаг отключает такое поведение и разрешает сбрасывать объекты до ленивых без вызова деструктора.
Функция не возвращает значения после выполнения.
Метод выбросит исключение ReflectionException, если объект ленивый и объект не инициализировали.
Метод выбросит ошибку Error, если объект инициализируется,
или если свойства объекта перебираются
конструкцией foreach.