我混淆了以下引发异常:
if (!filter_var(0, FILTER_VALIDATE_INT))
throw new Exception("Non numeric field passed " . $field . " when expecting a number: " . $variable . " passed instead");
什么积极的工作正常?我试过intval(0)但仍然没有。是零而不是整数?
答案 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)
将为真。