У меня есть список действий:
class Activities
{
const running = 'running';
...
}
Теперь я хотел бы добавить идентификатор к константе:
class Activities
{
const running = ['title' => 'running', 'id' => 1]
...
}
К сожалению, я не получаю автодополнение при использовании массива. Поэтому я бы предпочел использовать класс вместо массива.
Однако это не допускается для const. (выражение не допускается как значение константы класса)
Есть ли решение, которое позволяет автозаполнение для этого случая?
Вы можете удалить const
и определите свои перечисления как public static
:
class Activities
{
public static $running = ['title' => 'running', 'id' => 1];
}
Это будет либо использование массива, тогда автозаполнение становится немного громоздким, но все же возможно (если я правильно понимаю ваши намерения), вам просто придется запустить его против $ array [‘activity’]
Или вам придется создать класс
class Activity {
const activity='';
const id='';
cont etc='...';
}
и тогда вам нужно будет создать новую активность для каждого, с кем вы хотите поиграть.
Но не уверен, насколько он будет менее громоздким, чем массив.
Извините, если ответ немного запутанный, прошло много времени с тех пор, как мне приходилось думать о php на любом различимом человеческом языке.