Dan*_*umb 106
表达方式:
($min <= $value) && ($value <= $max)
Run Code Online (Sandbox Code Playgroud)
如果为真$value
之间$min
和$max
(含)
有关比较运算符的更多信息,请参阅PHP文档
Gor*_*don 103
您可以使用 filter_var
filter_var(
$yourInteger,
FILTER_VALIDATE_INT,
array(
'options' => array(
'min_range' => $min,
'max_range' => $max
)
)
);
Run Code Online (Sandbox Code Playgroud)
这还允许您指定是否要允许整数的八进制和十六进制表示法.请注意,该功能是类型安全的.5.5
不是整数,而是浮点数,不会验证.
有关使用PHP过滤数据的详细教程:
Bob*_*obz 25
可能有帮助:
if ( in_array(2, range(1,7)) ) {
echo 'Number 2 is in range 1-7';
}
Run Code Online (Sandbox Code Playgroud)
http://php.net/manual/en/function.range.php
Luk*_*uke 13
您可以启动一个小帮助函数来执行此操作:
/**
* Determines if $number is between $min and $max
*
* @param integer $number The number to test
* @param integer $min The minimum value in the range
* @param integer $max The maximum value in the range
* @param boolean $inclusive Whether the range should be inclusive or not
* @return boolean Whether the number was in the range
*/
function in_range($number, $min, $max, $inclusive = FALSE)
{
if (is_int($number) && is_int($min) && is_int($max))
{
return $inclusive
? ($number >= $min && $number <= $max)
: ($number > $min && $number < $max) ;
}
return FALSE;
}
Run Code Online (Sandbox Code Playgroud)
你会像这样使用它:
var_dump(in_range(5, 0, 10)); // TRUE
var_dump(in_range(1, 0, 1)); // FALSE
var_dump(in_range(1, 0, 1, TRUE)); // TRUE
var_dump(in_range(11, 0, 10, TRUE)); // FALSE
// etc...
Run Code Online (Sandbox Code Playgroud)
if (($num >= $lower_boundary) && ($num <= $upper_boundary)) {
Run Code Online (Sandbox Code Playgroud)
如果希望边界值无效,则可能需要调整比较运算符.
if (in_array($value, range($min, $max), true)) {
echo "You can be sure that $min <= $value <= $max";
}
Run Code Online (Sandbox Code Playgroud)
if ($value === min(max($value, $min), $max)) {
echo "You can be sure that $min <= $value <= $max";
}
Run Code Online (Sandbox Code Playgroud)
实际上,这就是用来将超出范围的值转换为其最近端的值。
$value = min(max($value, $min), $max);
Run Code Online (Sandbox Code Playgroud)
/**
* This is un-sanitized user input.
*/
$posts_per_page = 999;
/**
* Sanitize $posts_per_page.
*/
$posts_per_page = min(max($posts_per_page, 5), 30);
/**
* Use.
*/
var_dump($posts_per_page); // Output: int(30)
Run Code Online (Sandbox Code Playgroud)
您可以尝试以下单一语句:
if (($x-$min)*($x-$max) < 0)
Run Code Online (Sandbox Code Playgroud)
或者:
if (max(min($x, $max), $min) == $x)
Run Code Online (Sandbox Code Playgroud)