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

PHP教师成绩册项目如何区分空字符串''与数值0?

问题根因

你遇到的判断不触发的核心原因是:HTML 表单提交的所有内容默认是字符串类型,<input value="0">提交后拿到的值是字符串'0',而非整数类型的0。PHP 全等运算符===会同时校验值和类型,字符串'0'和整数0类型不匹配,所以=== 0条件自然永远返回false。

解决方案

你可以直接基于字符串类型做严格匹配,无需额外转换类型:

// 判定为未录入成绩(空提交场景)
if ($array['grades']['brian']['project'] === '') {
    // 对应未录入逻辑,比如数据库对应字段存NULL,或者标记为待录入状态
}

// 判定为录入0分(有效0分场景)
if ($array['grades']['samuel']['homework'] === '0') {
    // 对应0分逻辑,直接存入数值0到数据库即可
}

如果后续需要统一转换为数值类型写入数据库,可以按如下方式处理:

// 处理后null对应未录入,0对应有效0分,其他为正常分数
$score = $value === '' ? null : (int)$value;
验证方法

如果不确定拿到的值的类型,可以用var_dump($value)打印查看,表单提交的0会输出string(1) "0",空值会输出string(0) "",明确类型后再写判断逻辑即可。

内容的提问来源于stack exchange,提问作者Reid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 05:57:03