(PHP 8 >= 8.4.0)
ReflectionClass::resetAsLazyGhost — 重置物件並標記為延遲載入
重置現有的 object
物件並標記為延遲載入。
除非指定了 ReflectionClass::SKIP_DESTRUCTOR
旗標,否則會呼叫物件的解構子(如果存在)。在物件是已初始化代理的特殊情況下,實際執行個體會從代理中分離。如果實際執行個體在其他地方不再被參考,則無論 SKIP_DESTRUCTOR
旗標為何,都會呼叫其解構子。
動態屬性會被移除,並且在類別上宣告的屬性值會被捨棄,如同呼叫了 unset() 函式一樣,並標記為延遲載入。這意味著如果物件是具有額外屬性的子類別的執行個體,則這些屬性不會被修改,也不會被標記為延遲載入。如果 唯讀屬性 是 final
或類別本身是 final
,則它們也不會被修改或標記為延遲載入。
如果沒有屬性被標記為延遲載入,則物件不會被標記為延遲載入。另請參閱 延遲物件生命週期。
否則,在呼叫此方法後,物件的行為與由 ReflectionClass::newLazyGhost() 建立的物件相同(除了子類別和唯讀屬性,如上所述)。
物件不會被另一個物件取代,其識別保持不變。諸如 spl_object_id()、spl_object_hash()、SplObjectStorage、WeakMap、WeakReference 或 識別運算子 (===
) 等功能不受影響。
object
initializer
options
options
可以是以下旗標的組合
ReflectionClass::SKIP_INITIALIZATION_ON_SERIALIZE
ReflectionClass::SKIP_DESTRUCTOR
無回傳值。