php8.5
Home/ Manual/ reflection / reflectionclass/ ReflectionClass::initializeLazyObject

ReflectionClass::initializeLazyObject

PHP function Edit on GitHub ✎

(PHP 8 >= 8.4.0)

Forces initialization of a lazy object

Description

ReflectionClass::initializeLazyObject(object $object): object

Forces initialization of the specified object. This method has no effect if the object is not lazy or has already been initialized. Otherwise, initialization proceeds as described in the Initialization Sequence.

Note

In most cases, calling this method is unnecessary, as lazy objects initialize themselves automatically when their state is observed or modified.

Parameters

object

The object to initialize.

Return Values

If object is a lazy proxy, returns its real instance. Otherwise, returns object itself.

Examples

Basic usage

php
<?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);
?>

The above example will output:

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

See Also

  • Lazy objects
  • ReflectionClass::newLazyGhost
  • ReflectionClass::markLazyObjectAsInitialized
  • ReflectionClass::isUninitializedLazyObject

Source: reference/reflection/reflectionclass/initializelazyobject.xml · from the official PHP manual (php/doc-en)