在PHP中定义未与对象实例一起存储的类变量

时间:2013-10-19 18:03:58

标签: php class object serialization

我有一个简单的课程:

class obj__image extends obj__file {

    public $dimensions;
    public $storedDPI;
    public $colorProfile;

}

当我将此实例存储到我的会话中时(例如),对象被序列化并存储起来。没关系。

但有没有办法定义一个类变量,例如上面的$colorProfile,以便在存储/序列化对象时不会存储它?

1 个答案:

答案 0 :(得分:2)

通过为类定义魔术__sleep()方法,您可以精确控制序列化对象中包含的属性。 __sleep()方法应该返回一个属性名称数组:数组中列出的那些属性名称将包含在序列化对象中,任何其他未列出的属性都将被丢弃