php filter_var在FILTER_VALIDATE_INT上失败,为零

时间:2014-03-24 07:09:19

标签: php

我混淆了以下引发异常:

if (!filter_var(0, FILTER_VALIDATE_INT))
    throw new Exception("Non numeric field passed " . $field . " when expecting a number: " . $variable . " passed instead");
什么积极的工作正常?我试过intval(0)但仍然没有。是零而不是整数?

2 个答案:

答案 0 :(得分:8)

人们应该测试 false

if (filter_var($value, FILTER_VALIDATE_INT) === false) {
    // $value is not an integer
}

答案 1 :(得分:7)

filter_var 返回过滤后的数据,如果过滤器失败,则返回FALSE。

filter_var(0, FILTER_VALIDATE_INT)会返回int(0),这是一个假值,!filter_var(0, FILTER_VALIDATE_INT)将为真。