我正在定义一个具有 DateTime 对象作为属性之一的类。我想将其默认值设置为“-1”的 unix 时间戳。我还希望这个默认值保持不变,以便所有对象都知道它的值。
但我不想声明类似的东西,const PROPERTY_DEFAULT_DATE = '-1';
因为该属性将是一个 DateTime 对象和使用此默认值的操作/函数,如果 PROPERTY_DEFAULT_DATE 不是正确的 DateTime 对象,该属性将难以处理
那么,我可以在另一个类中将一个类的特定对象实例作为常量吗?
PHP手册说
该值必须是常量表达式,而不是(例如)变量、属性、数学运算的结果或函数调用。
没有提到这一点,但我认为它无法完成(尝试了很多变体,总是出现语法错误)
如果不可能,我有什么替代方案?
编辑:我想我需要找到为我的属性定义“默认值”的问题的解决方案,在这种情况下,它恰好是一个 DateTime 对象。您将在 中设置
什么默认值?(不,请不要为 NULL,我希望必须存在更优雅的解决方案)另外请记住,它可能用于类/子类中的操作/函数
__construct()
更新:我按照这里的建议
private $_DEFAULT_DATE
为它创建了一个属性和一个吸气剂。这个属性没有设置器,所以我可以保证它不会被改变。(当然,我注意不要在类实现中更改它)