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