PHP, если операторы с несколькими значениями

Есть ли более короткий способ написать это?

<? if($_GET['id']==1 || $_GET['id']==3 || $_GET['id']==4 || $_GET['id']==5) {echo 'does it really have to be this explicit?'}; ?> 

Что-то вроде этого возможно?

 <? if($_GET['id']==1 || 3 || 4 || 5){echo 'this is much shorter'}; ?> 

Просто попробуйте:

 if ( in_array($_GET['id'], array(1, 3, 4, 5)) ) {} 

Может быть, не короче, но более читаемо. Попробуйте функцию in_array ():

 if (in_array($_GET['id'], array(1, 3, 4, 5))) { echo "What about this?"; } 

Вы можете использовать регулярное выражение, как показано ниже:

 preg_match(['1-4']); 

Возможно, переключатель может помочь

 switch($_GET['id']) { case 1: case 3: case 4: case 5: echo 'Slect maybe :P'; break; } 

Объявить массив:

 $values = array(1,3,4,5); 

Получить переменную

 $id = $_GET['id']; 

Теперь используйте PHP in_array ();

 if(in_array($id, $values)){ //do something } 

Читайте о in_array ()