Как ограничить максимальное значение числа?

Я хочу защитить свою страницу, проверив, является ли это значение цифровым (0,1,2,3), и если оно находится в диапазоне от 0 до 120. Я думаю, функция ctype_digit ограничивает число, поэтому не может быть передано какое-либо отрицательное число. Как я могу ограничить максимальное значение самым простым способом?

 if (!ctype_digit($_GET['category'] AND ...) die(''); if (!ctype_digit($_GET['category'] > 120) ? 

Я intval о intval но он может передавать отрицательные числа.

Solutions Collecting From Web of "Как ограничить максимальное значение числа?"

 if (!ctype_digit($_GET['category']) || $_GET['category'] > 120) die('') 

В основном это говорит: «Если это не число или если оно больше 120, остановитесь»

Вы можете взглянуть на фильтрацию данных PHP .

Он предоставляет фильтр для вашей задачи ( FILTER_VALIDATE_INT ), который также принимает параметры min_range и max_range :

 $value = filter_var($_GET['category'], FILTER_VALIDATE_INT, array( 'options' => array( // An optional default value 'default' => 123, // Desired validation range 'min_range' => 0, 'max_range' => 120 ), )); // $value is FALSE when validation failed, or an "int" with // the correct value. 

if (is_int($_GET['category']) and $_GET['category'] > 0 and $_GET['category'] <= 120)

Это проверяет, больше ли число больше нуля и меньше или равно 120.

 if(!ctype_digit($_GET['category']) || $_GET['category'] > 120) { ... 
 // Make sure it is an integer. $category = (int) $_GET['category']; if($category<0 OR $category>120){ // Code to be executed if the number is out of range... } 

Не ответ, но вот почему то, что у вас было, не получилось:

 if (!ctype_digit($_GET['category'] > 120) ? ^^^^^^^^^^^^^^^^^^^^^^^ 

Указанная часть находится внутри вызова ctype. Поэтому первый PHP проверяет, превышает ли значение GET 120, превратив это в логическое значение true / false. THEN применяется ctype, который всегда будет false, поскольку логическое значение не является цифрой.

 if(!ctype_digit($_GET['category']) || $_GET['category'] > 120) //do whatever you want 

Я добавляю это, так как некоторые люди могут наткнуться на поиск пути к этой задаче на основе темы вашего вопроса.
Иногда вы просто хотите «ограничить максимальное значение числовой переменной».

 $val=($val <= 120)?$val:120; 

Это лучший способ, который я нашел в одной строке (комбинация min () и max () может сделать то же самое, но это намного больше интенсивных вычислений). Если значение $ val больше 120, оно будет обрезано до 120, иначе исходное значение используется.