Sebastian Bergmann的文章 中详述了如何通过PHP5.3 SPL中的setAccessible方法实现对象的冻结和解冻。
PHP反射API组成部分ReflectionProperty类中的setAccessible()方法是PHP 5.3众多新特性中的一项。该方法使得类或对象的protected和private字段可以被 ReflectionProperty::getValue()和ReflectionProperty::setValue()方法访问,从而将protected和private字段的读写完全开放给外界。
大量代码展示了如何冻结和解冻对象:创建对象,在它上面调用freeze(),然后调用thaw()把它还原。
译文:冻结和解冻PHP对象