将filter_var与参数一起使用

时间:2013-01-30 13:45:24

标签: php

我正在尝试检查变量是否为整数,如果她是在辩论中:2-15。

我正在尝试使用filter_var()函数进行此操作。但我不明白如何正确使用min_rangemax_range参数。

这不起作用,我错了?

$c = 48;

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

2 个答案:

答案 0 :(得分:12)

min_range和max_range值必须是一个级别,更深:

// 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,
);

请参阅:http://php.net/filter_var

所以:

$c = 48;

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

答案 1 :(得分:3)

它们应该在选项数组中:

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

虽然

似乎过于复杂的写2 <= $c && $c <= 15的方式