Я определяю класс, который имеет объект DateTime в качестве одного из свойств.Я хочу установить в качестве значения по умолчанию в Unix отметку времени -1.Я также хочу, чтобы это значение по умолчанию было постоянным, чтобы все объекты знали его значение.
Но я не хочу объявлять что-то вроде const PROPERTY_DEFAULT_DATE = '-1';
, поскольку свойство будет объектом DateTime, а операции / функции будут использовать это значение по умолчанию, и свойство будет трудно обрабатывать, если PROPERTY_DEFAULT_DATE не является правильным объектом DateTime
Итак, я могу иметь конкретный экземпляр объекта класса как константу внутри другого класса?
В руководстве по PHP написано
Значение должно быть константным выражением, а не (например) переменной, свойством, результатом математической операции или вызова функции.
Не упоминается об этом, но я думаю, что это невозможно сделать (перепробовано много вариантов, всегда есть синтаксические ошибки)
Если это невозможно, какие альтернативы у меня есть?Изменить: Я думаю, что мне нужно найти решение проблемы определения «Значение по умолчанию» для моего свойства, которое в данном случае оказывается объектом DateTime.
Какое значение по умолчанию будет , вы установитев __construct()
?(нет, не NULL, пожалуйста, я ожидаю, что должно существовать более элегантное решение) Также имейте в виду, что оно может использоваться в операциях / функциях внутри класса / подклассаОбновление: я последовал совету здесь и создал свойство private $_DEFAULT_DATE
и геттер для него.Для этого свойства нет установщика, поэтому я могу быть уверен, что оно не будет изменено.(Конечно, я стараюсь не менять его в реализации класса)