Php 使用带参数的filter_var

Php 使用带参数的filter_var,php,Php,我试着检查变量是否是整数,她是否处于2-15的状态 我正在尝试使用filter\u var()函数来实现这一点。但是我不明白如何正确使用min\u range和max\u range参数 这行不通,我错在哪里 $c = 48; if ( filter_var($c, FILTER_VALIDATE_INT , array("min_range"=>2,"max_range"=>15)) === false ) { echo "bad"; } “最小范围”和“最大范围”值必

我试着检查变量是否是整数,她是否处于2-15的状态

我正在尝试使用
filter\u var()
函数来实现这一点。但是我不明白如何正确使用
min\u range
max\u range
参数

这行不通,我错在哪里

$c = 48;

if ( filter_var($c, FILTER_VALIDATE_INT , array("min_range"=>2,"max_range"=>15)) === false ) {
    echo "bad";
}

“最小范围”和“最大范围”值必须是一个更深的级别:

// for filters that accept options, use this format
$options = array(
    'options' => array(
        'default' => 3, // value to return if the filter fails
        // other options here
        'min_range' => 0
    ),
    'flags' => FILTER_FLAG_ALLOW_OCTAL,
);
见:

因此:


它们应位于选项数组中:

if ( filter_var($c, FILTER_VALIDATE_INT, array(
        "options"=>array(
            "min_range"=>2,
            "max_range"=>15
        )
    )) === false ) {
    echo "bad";
}

2的方式似乎过于复杂,请解释什么不起作用。在这种情况下,不打印“坏”复杂-确实-有些选项似乎更适合提供全套功能,即使有更简单的方法来完成更次要的任务。作为一个过滤器,这确实更有用,因为在过滤器中设置一个变量可以对结果进行类型转换。有更简单的方法(比如自己打字),但这是filter_var最简单的选项之一,它有更令人印象深刻的功能。
if ( filter_var($c, FILTER_VALIDATE_INT, array(
        "options"=>array(
            "min_range"=>2,
            "max_range"=>15
        )
    )) === false ) {
    echo "bad";
}