PHP 8.4.1 Released!

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)
}

参考

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top