PHP Conference Japan 2024

ReflectionClass::resetAsLazyProxy

(PHP 8 >= 8.4.0)

ReflectionClass::resetAsLazyProxy重置对象并将其标记为延迟加载

描述

public ReflectionClass::resetAsLazyProxy(object $object, callable $factory, int $options = 0): void

此方法的行为与ReflectionClass::resetAsLazyGhost()相同,只是它使用代理策略。

object 本身成为代理。与 ReflectionClass::resetAsLazyGhost() 类似,对象不会被另一个对象替换,即使初始化后,其标识也不会改变。代理和真实实例是不同的对象,具有不同的标识。

参数

object
一个非延迟加载的对象,或一个已初始化的延迟加载的对象。
factory
一个工厂回调,其签名和用途与ReflectionClass::newLazyProxy()中的相同。
options

options 可以是以下标志的组合

ReflectionClass::SKIP_INITIALIZATION_ON_SERIALIZE
默认情况下,序列化延迟加载的对象会触发其初始化。设置此标志可以防止初始化,允许序列化延迟加载的对象而无需初始化。
ReflectionClass::SKIP_DESTRUCTOR
默认情况下,在将对象设为延迟加载之前,会调用对象的析构函数(如果有)。这为对象中任何预先存在的状态提供了安全性。此标志禁用该行为,允许将对象重置为延迟加载而无需调用析构函数。

返回值

不返回任何值。

错误/异常

如果对象是延迟加载且未初始化,则会抛出 ReflectionException

如果对象正在初始化,或者正在使用 foreach 迭代对象的属性,则会抛出 Error

参见

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top