为什么 filter_input 在变量存在时返回 NULL?

Why is filter_input returning NULL when the variables exist?

我正在尝试检索一些 GET 数据并过滤它以确保它包含一个整数。 url 字符串是 events.php?id=22&month=2,但是当我出于某种原因尝试获取变量 filter_input returns NULL 时,我无法弄清楚原因。这是我的代码:

if(!isset($pageId)) {
    $pageId = filter_input(INPUT_GET, 'id', FITER_VALIDATE_INT) ?: 4;
}
if(!isset($month)) {
    $month = filter_input(INPUT_GET, 'month', FITER_VALIDATE_INT) ?: date('n');
    var_dump($_SERVER['QUERY_STRING'], filter_input(INPUT_GET, 'month', FITER_VALIDATE_INT));
}

var_dump returns string(13) "id=22&month=2" NULL。我也试过 var_dump($_GET) 并按预期返回 array(2) { ["id"]=> string(2) "22" ["month"]=> string(1) "2" }

为什么 filter_input 返回 NULL?我用这种方式检索 GET 数据从来没有遇到过问题。

FITER_VALIDATE_INT 应该是 FILTER_VALIDATE_INT。在常量的所有实例中,您都缺少 L in FILTER。打开错误报告会引发几个 Notice: Use of undefined constant FITER_VALIDATE_INT - assumed 'FITER_VALIDATE_INT' 错误。