Я пытаюсь создать абстрактный класс, который бы сохранил несколько строк. Я хочу, чтобы каждая из констант имела значение предыдущей константы и некоторые другие дополнения. Например, что-то вроде этого:
abstract class Test
{
const a = "a",
b = "ab",
c = "abc";
}
Я не хочу повторять все дважды, поэтому, когда я хочу изменить a
например, мне нужно изменить его в каждом из значений. Я хочу, чтобы оно использовало предыдущее значение в следующей константе, поэтому, когда я что-то изменяю, все это будет изменено на одно значение. Возможно ли что-то подобное? Я старался this::a
но это не сработало, и я не мог придумать другого пути.
Поддержка постоянных выражений была добавлена в PHP 5.6:
Можно предоставить скалярное выражение, включающее числовые и строковые литералы и / или константы в контексте константы класса.
Таким образом, вы можете сделать:
const a = "a",
b = self::a . "b",
c = self::a . "bc";
Вы получаете доступ const
внутри классов с self
Других решений пока нет …