(PHP 8 >= 8.4.0)
ReflectionClass::markLazyObjectAsInitialized — イニシャライザまたはファクトリを呼び出さずレイジーオブジェクトを初期化済みとしてマークする
   イニシャライザまたはファクトリを呼び出さずレイジーオブジェクトを
   初期化済みとしてマークします。object がレイジーでないか、
   すでに初期化されている場合、このメソッドは効果がありません。
  
   このメソッド動作は、object のレイジー戦略に関わらず、
   初期化シーケンス
   においてゴーストオブジェクトに対して説明されたものとほぼ同じですが、
   イニシャライザが呼び出されない点を除きます。
   その後、オブジェクトは、ReflectionProperty::setRawValueWithoutLazyInitialization() または
   ReflectionProperty::skipLazyInitialization() で
   既に初期化されたプロパティの値を除いて、
   ReflectionClass::newInstanceWithoutConstructor() で作成された、
   元々レイジーでなかったオブジェクトと区別がつかなくなります。
  
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"
}
