Как ограничить варианты значения аргумента в методе?

Всем привет! Мне нужно сделать так, чтобы в функции
function getContent($arg){
//.....
}

Аргумент $arg был ограничен несколькими вариантами строк. Например "posts", "news" и "comments".
Я понимаю, что я могу сделать проверку по типу in_array(), но такой вариант мне не нравится. Когда-то, то ли в книжке, то ли в каком-то коде я встречал вариант с указанием констант и не могу его вспомнить.
  • Вопрос задан
  • 173 просмотра
Решения вопроса 2
Playmore
@Playmore
Опытный разработчик
если на входе ассоциативный массив, то например так
$arg = array_intersect_assoc($arg, array_flip(['post', 'news', 'comments']))
Ответ написан
Комментировать
@sl0
С константами, подозреваю, имеется в виду SplEnum:
https://www.php.net/manual/en/class.splenum.php

Но я бы не стал с этим заморачиваться, а сделал декоратор для функции, который принимал бы $arg, проверял их любым способом - хоть через in_array, хоть через switch и потом вызывал уже getContent.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы