You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP FILTER_VALIDATE_INT函数问题:传入0时返回错误而非成功

解决FILTER_VALIDATE_INT验证0时返回错误的问题

这问题我之前也踩过坑,本质是PHP的松散类型判断在搞怪!

问题原因

当你传入0给FILTER_VALIDATE_INT时,函数其实是验证通过的,它会返回0这个合法的整数值。但PHP的if()语句在做松散比较时,会把0、空字符串、null等都视为布尔值false,所以你的代码会错误地走进else分支输出error。

解决方案

正确的做法是严格判断返回值是否为false——因为只有当验证完全失败时,filter_var才会返回false,合法的整数(包括0)都会返回对应的整数值。

修正后的代码如下:

$delivery = 0;
if (filter_var($delivery, FILTER_VALIDATE_INT) !== false) {
    echo 'ok';
} else {
    echo 'error';
}

你也可以先把验证结果存起来,这样代码可读性更好:

$delivery = 0;
$validatedDelivery = filter_var($delivery, FILTER_VALIDATE_INT);
if ($validatedDelivery !== false) {
    echo 'ok';
} else {
    echo 'error';
}

这样修改后,0就能被正确识别为合法整数,输出ok啦~

内容的提问来源于stack exchange,提问作者M.J

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:50:30