php filter_var在FILTER_VALIDATE_INT上失败,为零

sap*_*tos 6 php

我很困惑以下引发异常:

if (!filter_var(0, FILTER_VALIDATE_INT))
    throw new Exception("Non numeric field passed " . $field . " when expecting a number: " . $variable . " passed instead");
Run Code Online (Sandbox Code Playgroud)

什么积极的工作好吗?我试过intval(0)但仍然没有.是零而不是整数?

dat*_*.io 8

人们应该测试错误:

if (filter_var($value, FILTER_VALIDATE_INT) === false) {
    // $value is not an integer
}
Run Code Online (Sandbox Code Playgroud)


xda*_*azz 7

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

filter_var(0, FILTER_VALIDATE_INT)返回int(0),并且是一个虚假的值,!filter_var(0, FILTER_VALIDATE_INT)将是真的.