Можно ли определить константу класса внутри функции конструктора класса?
(на основании определенных условий)
Это противоречит идее констант класса - они не должны зависеть от конкретного экземпляра. Вместо этого вы должны использовать переменную.
Однако, если вы настаиваете на этом, очень предприимчивы и можете устанавливать расширения PHP, вы можете взглянуть на расширение runkit, которое позволяет изменять классы и их константы во время выполнения. Смотрите этот документ: http://www.php.net/manual/en/function.runkit-constant-add.php
Не думаю, что ты можешь.
Это также не имеет смысла - константа класса может использоваться в статическом контексте, где в первую очередь нет конструктора.
Вместо этого вам придется использовать переменную - вот для чего они здесь.
Попробуйте посмотреть здесь:
http://php.net/manual/en/language.oop5.constants.php
http://php.net/manual/en/language.oop5.static.php
Надеюсь, это поможет.