(PHP 8 >= 8.4.0)
ReflectionClass::markLazyObjectAsInitialized — Помечает ленивый объект как инициализированный без вызова инициализатора или фабрики
   Метод помечает ленивый объект как инициализированный без вызова инициализатора
   или фабрики. Метод ничего не сделает, если в параметр object передали не ленивый объект
   или объект уже инициализировали.
  
   Вызов метода выполняет те же операции, которые — независимо от стратегии лени объекта object —
   описывает секция
   «Последовательность инициализации»
   для объектов-призраков,
   за исключением того, что инициализатор не вызывается.
   После вызова метода объект становится неотличим от объекта, который никогда не был ленивым
   и который создали методом
   ReflectionClass::newInstanceWithoutConstructor(),
   за исключением значений свойств, которые уже инициализировали методом
   ReflectionProperty::setRawValueWithoutLazyInitialization()
   или ReflectionProperty::skipLazyInitialization().
  
object
   Метод возвращает объект object, который в случае успешного выполнения
   пометил как инициализированный.
  
Пример #1 Пример пометки неинициализированного ленивого объекта как инициализированного
<?php
class Example
{
    public string $prop1;
    public string $prop2;
    public string $prop3 = 'default value';
}
$reflector = new ReflectionClass(Example::class);
$object = $reflector->newLazyGhost(function ($object) {
    echo "Initializer called\n";
    $object->prop1 = 'initialized';
});
$reflector->getProperty('prop1')
          ->setRawValueWithoutLazyInitialization($object, 'prop1 value');
var_dump($object);
$reflector->markLazyObjectAsInitialized($object);
var_dump($object);
?>Результат выполнения приведённого примера:
lazy ghost object(Example)#3 (1) {
  ["prop1"]=>
  string(11) "prop1 value"
  ["prop2"]=>
  uninitialized(string)
  ["prop3"]=>
  uninitialized(string)
}
object(Example)#3 (2) {
  ["prop1"]=>
  string(11) "prop1 value"
  ["prop2"]=>
  uninitialized(string)
  ["prop3"]=>
  string(13) "default value"
}
Пример #2 Пример пометки инициализированного ленивого объекта как инициализированного
<?php
class Example
{
    public string $prop1;
    public string $prop2;
    public string $prop3 = 'default value';
}
$reflector = new ReflectionClass(Example::class);
$object = $reflector->newLazyGhost(function ($object) {
    echo "Initializer called\n";
    $object->prop1 = 'initialized';
});
$reflector->getProperty('prop1')
    ->setRawValueWithoutLazyInitialization($object, 'prop1 value')
;
var_dump($object->prop3);
var_dump($object);
$reflector->markLazyObjectAsInitialized($object);
var_dump($object);
?>Результат выполнения приведённого примера:
Initializer called
string(13) "default value"
object(Example)#3 (2) {
  ["prop1"]=>
  string(11) "initialized"
  ["prop2"]=>
  uninitialized(string)
  ["prop3"]=>
  string(13) "default value"
}
object(Example)#3 (2) {
  ["prop1"]=>
  string(11) "initialized"
  ["prop2"]=>
  uninitialized(string)
  ["prop3"]=>
  string(13) "default value"
}
