php filter var返回错误的结果

med*_*edk 3 php filter-var

我想使用php filer_var函数,但它返回了错误的结果,似乎它没有考虑范围:

$v = 54;

$int_opts = array (

    'min_range' => 0,
    'max_range' => 24

);

if ( filter_var($v, FILTER_VALIDATE_INT, $int_opts) ) echo 'an integer';

else echo 'not an integer';
Run Code Online (Sandbox Code Playgroud)

这不应该是一个整数,因为54不在0到24之间,但它返回true并回显"整数".

这有什么问题?

谢谢.

Pek*_*ica 7

"options"数组需要有一个名为"options"的成员.从手册:

$options = array(
    'options' => array(
        'default' => 3, // value to return if the filter fails
        // other options here
        'min_range' => 0
    ),
    'flags' => FILTER_FLAG_ALLOW_OCTAL,
);
Run Code Online (Sandbox Code Playgroud)

你没有传递,所以显示的行为是可以的.

  • 这很容易出错 - 它的设计应该与IMO不同. (3认同)