PHP: Hypertext Preprocessor (original) (raw)

ReflectionClass::initializeLazyObject

(PHP 8 >= 8.4.0)

ReflectionClass::initializeLazyObject — Forces initialization of a lazy object

Description

public 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 theInitialization 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

Example #1 Basic usage

<?php class Example { public function __construct(public int $prop) { } }$reflector = new ReflectionClass(Example::class);$object = <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>r</mi><mi>e</mi><mi>f</mi><mi>l</mi><mi>e</mi><mi>c</mi><mi>t</mi><mi>o</mi><mi>r</mi><mo>−</mo><mo>&gt;</mo><mi>n</mi><mi>e</mi><mi>w</mi><mi>L</mi><mi>a</mi><mi>z</mi><mi>y</mi><mi>G</mi><mi>h</mi><mi>o</mi><mi>s</mi><mi>t</mi><mo stretchy="false">(</mo><mi>f</mi><mi>u</mi><mi>n</mi><mi>c</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi><mo stretchy="false">(</mo></mrow><annotation encoding="application/x-tex">reflector-&gt;newLazyGhost(function (</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8889em;vertical-align:-0.1944em;"></span><span class="mord mathnormal">re</span><span class="mord mathnormal" style="margin-right:0.10764em;">f</span><span class="mord mathnormal" style="margin-right:0.01968em;">l</span><span class="mord mathnormal">ec</span><span class="mord mathnormal">t</span><span class="mord mathnormal" style="margin-right:0.02778em;">or</span><span class="mord">−</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">&gt;</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">n</span><span class="mord mathnormal">e</span><span class="mord mathnormal" style="margin-right:0.02691em;">w</span><span class="mord mathnormal">L</span><span class="mord mathnormal">a</span><span class="mord mathnormal" style="margin-right:0.03588em;">zy</span><span class="mord mathnormal">G</span><span class="mord mathnormal">h</span><span class="mord mathnormal">os</span><span class="mord mathnormal">t</span><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.10764em;">f</span><span class="mord mathnormal">u</span><span class="mord mathnormal">n</span><span class="mord mathnormal">c</span><span class="mord mathnormal">t</span><span class="mord mathnormal">i</span><span class="mord mathnormal">o</span><span class="mord mathnormal">n</span><span class="mopen">(</span></span></span></span>object) { echo "Initializer called\n"; $object->__construct(1); });var_dump($object);$reflector->initializeLazyObject($object);var_dump($object); ?>

The above example will output:

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

See Also

Found A Problem?

There are no user contributed notes for this page.