(PHP 8 >= 8.4.0)
ReflectionClass::initializeLazyObject — 强制初始化延迟对象
强制初始化指定的 $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) }