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

时间:2015-05-13 15:46:46

标签: php get filter-input

我正在尝试检索一些GET数据并对其进行过滤以确保它包含整数。网址字符串为events.php?id=22&month=2,但当我尝试获取变量filter_input由于某种原因返回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返回string(13) "id=22&month=2" NULL。我也尝试了var_dump($_GET)并按预期收回了array(2) { ["id"]=> string(2) "22" ["month"]=> string(1) "2" }

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

1 个答案:

答案 0 :(得分:4)

FITER_VALIDATE_INT应为FILTER_VALIDATE_INT。在常量的所有实例中,L中缺少FILTER。启用错误报告会导致多个Notice: Use of undefined constant FITER_VALIDATE_INT - assumed 'FITER_VALIDATE_INT'错误。