PHP Conference Japan 2024

ReflectionClass::initializeLazyObject

(PHP 8 >= 8.4.0)

ReflectionClass::initializeLazyObjectПринудительно инициализирует ленивый объект

Описание

public ReflectionClass::initializeLazyObject(object $object): object

Метод принудительно инициализирует ленивый объект object. Метод не подействует, если в аргументе передали не ленивый объект или объект уже инициализировали, иначе инициализация продолжается так, как описывает секция «Последовательность инициализации».

Замечание: В большей части случаев вызывать метод не потребуется, поскольку ленивые объекты инициализируются автоматически, при начале отслеживания состояния или изменении ленивого объекта.

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

object
Объект, который требуется инициализировать.

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

Метод возвращает реальный экземпляр объекта, если объект object оказался ленивым прокси, иначе возвращает сам object.

Примеры

Пример #1 Базовый пример принудительной инициализации ленивого объекта

<?php

class Example
{
public function
__construct(public int $prop) {}
}

$reflector = new ReflectionClass(Example::class);

$object = $reflector->newLazyGhost(function ($object) {
echo
"Initializer called\n";
$object->__construct(1);
});

var_dump($object);

$reflector->initializeLazyObject($object);

var_dump($object);

?>

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

lazy ghost object(Example)#3 (0) {
  ["prop"]=>
  uninitialized(int)
}
Initializer called
object(Example)#3 (1) {
  ["prop"]=>
  int(1)
}

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

Добавить

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

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