В PHP есть ли короткий способ сравнить переменную с несколькими значениями?

В основном, мне интересно, есть ли способ сократить что-то вроде этого:

if ($variable == "one" || $variable == "two" || $variable == "three") 

таким образом, что переменная может быть проверена против или сопоставлена ​​с несколькими значениями без повторения переменной и оператора каждый раз.

Например, что-то вроде этого может помочь:

 if ($variable == "one" or "two" or "three") 

или что-нибудь, что приводит к меньшему набору текста.

in_array() – это то, что я использую

 if (in_array($variable, array('one','two','three'))) { 

Без необходимости построения массива:

 if (strstr('onetwothree', $variable)) //or case-insensitive => stristr 

Конечно, технически это вернет true, если переменная twothr , поэтому добавление «разделителей» может быть удобно:

 if (stristr('one/two/three', $variable))//or comma's or somehting else 
 $variable = 'one'; // ofc you could put the whole list in the in_array() $list = ['one','two','three']; if(in_array($variable,$list)){ echo "yep"; } else { echo "nope"; } 

С корпусом переключателя

 switch($variable){ case 'one': case 'two': case 'three': //do something amazing here break; default: //throw new Exception("You are not worth it"); break; } 

Использование preg_grep может быть короче и гибче, чем использование in_array :

 if (preg_grep("/(one|two|three)/i", array($variable))) { // ... } 

Поскольку дополнительный модификатор i шаблона ( i nsensitive) может соответствовать как строчным, так и строчным буквам.